sapling/eden/integration/service_log_test.py
generatedunixname89002005289445 1678b9273e Update pyre version for eden
Summary: Automatic upgrade to remove `version` override and silence errors.

Reviewed By: shannonzhu

Differential Revision: D14305975

fbshipit-source-id: 7b54441dc846165fb12bfbe5339e4c917da463ec
2019-03-04 13:03:03 -08:00

75 lines
2.6 KiB
Python

#!/usr/bin/env python3
# Copyright (c) 2018-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree. An additional grant
# of patent rights can be found in the PATENTS file in the same directory.
import pathlib
import subprocess
from .lib.fake_edenfs import FakeEdenFS
from .lib.find_executables import FindExe
from .lib.service_test_case import (
ManagedFakeEdenFSMixin,
ServiceTestCaseBase,
service_test,
)
from .start_test import run_eden_start_with_real_daemon
class ServiceLogTestBase(ServiceTestCaseBase):
"""Test how the EdenFS service stores its logs.
"""
def setUp(self) -> None:
super().setUp()
self.eden_dir = pathlib.Path(self.make_temporary_directory())
@property
def log_file_path(self) -> pathlib.Path:
return self.eden_dir / "logs" / "edenfs.log"
@service_test
class ServiceLogFakeEdenFSTest(ServiceLogTestBase):
def test_fake_edenfs_writes_logs_to_file_in_eden_dir(self) -> None:
self.assertFalse(
self.log_file_path.exists(),
f"{self.log_file_path} should not exist before starting fake_edenfs",
)
with self.spawn_fake_edenfs(self.eden_dir):
self.assertTrue(
self.log_file_path.exists(),
f"fake_edenfs should create {self.log_file_path}",
)
self.assertIn("Starting fake edenfs daemon", self.log_file_path.read_text())
def test_fake_edenfs_appends_to_existing_log_file(self) -> None:
self.log_file_path.parent.mkdir(exist_ok=True, parents=True)
self.log_file_path.write_text("test log messages\n")
with self.spawn_fake_edenfs(self.eden_dir):
pass
self.assertIn("test log messages", self.log_file_path.read_text())
class ServiceLogRealEdenFSTest(ManagedFakeEdenFSMixin, ServiceLogTestBase):
def test_real_edenfs_writes_logs_to_file_in_eden_dir(self) -> None:
self.assertFalse(
self.log_file_path.exists(),
f"{self.log_file_path} should not exist before starting edenfs",
)
run_eden_start_with_real_daemon(
eden_dir=self.eden_dir,
etc_eden_dir=self.etc_eden_dir,
home_dir=self.home_dir,
systemd=False,
)
with FakeEdenFS.from_existing_process(eden_dir=self.eden_dir):
self.assertTrue(
self.log_file_path.exists(),
f"edenfs should create {self.log_file_path}",
)
self.assertIn("Starting edenfs", self.log_file_path.read_text())