Compare commits
2 Commits
b2af41d5fb
...
9eb2ed0097
| Author | SHA1 | Date | |
|---|---|---|---|
| 9eb2ed0097 | |||
| 5c8932599c |
@@ -68,7 +68,9 @@ def setup_logger(verbose: bool = False, log_file: Path | None = None) -> logging
|
|||||||
logger.addHandler(error_handler)
|
logger.addHandler(error_handler)
|
||||||
|
|
||||||
if log_file:
|
if log_file:
|
||||||
if not file_handlers:
|
for handler in file_handlers:
|
||||||
|
handler.close()
|
||||||
|
logger.removeHandler(handler)
|
||||||
log_file.parent.mkdir(parents=True, exist_ok=True)
|
log_file.parent.mkdir(parents=True, exist_ok=True)
|
||||||
file_handler = logging.FileHandler(log_file, encoding="utf-8")
|
file_handler = logging.FileHandler(log_file, encoding="utf-8")
|
||||||
file_handler.setLevel(logging.DEBUG)
|
file_handler.setLevel(logging.DEBUG)
|
||||||
|
|||||||
@@ -87,3 +87,34 @@ def test_setup_logger_file_handler_lifecycle(tmp_path):
|
|||||||
logger.removeHandler(handler)
|
logger.removeHandler(handler)
|
||||||
for handler in original_handlers:
|
for handler in original_handlers:
|
||||||
logger.addHandler(handler)
|
logger.addHandler(handler)
|
||||||
|
|
||||||
|
|
||||||
|
def test_setup_logger_replaces_file_handler_when_path_changes(tmp_path):
|
||||||
|
logger = logging.getLogger("skywipe")
|
||||||
|
original_handlers = list(logger.handlers)
|
||||||
|
for handler in original_handlers:
|
||||||
|
logger.removeHandler(handler)
|
||||||
|
|
||||||
|
log_file1 = tmp_path / "skywipe1.log"
|
||||||
|
log_file2 = tmp_path / "skywipe2.log"
|
||||||
|
try:
|
||||||
|
setup_logger(verbose=False, log_file=log_file1)
|
||||||
|
file_handlers = [
|
||||||
|
handler for handler in logger.handlers
|
||||||
|
if isinstance(handler, logging.FileHandler)
|
||||||
|
]
|
||||||
|
assert len(file_handlers) == 1
|
||||||
|
assert file_handlers[0].baseFilename == str(log_file1)
|
||||||
|
|
||||||
|
setup_logger(verbose=False, log_file=log_file2)
|
||||||
|
file_handlers = [
|
||||||
|
handler for handler in logger.handlers
|
||||||
|
if isinstance(handler, logging.FileHandler)
|
||||||
|
]
|
||||||
|
assert len(file_handlers) == 1
|
||||||
|
assert file_handlers[0].baseFilename == str(log_file2)
|
||||||
|
finally:
|
||||||
|
for handler in list(logger.handlers):
|
||||||
|
logger.removeHandler(handler)
|
||||||
|
for handler in original_handlers:
|
||||||
|
logger.addHandler(handler)
|
||||||
|
|||||||
Reference in New Issue
Block a user