more adjustments
This commit is contained in:
51
tests/test_session_logger_reset.py
Normal file
51
tests/test_session_logger_reset.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import pytest
|
||||
import tomllib
|
||||
from pathlib import Path
|
||||
from typing import Generator
|
||||
from src import session_logger
|
||||
import time
|
||||
|
||||
@pytest.fixture
|
||||
def temp_logs(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> Generator[Path, None, None]:
|
||||
# Ensure closed before starting
|
||||
session_logger.close_session()
|
||||
monkeypatch.setattr(session_logger, "_comms_fh", None)
|
||||
|
||||
log_dir = tmp_path / "logs"
|
||||
scripts_dir = tmp_path / "scripts" / "generated"
|
||||
log_dir.mkdir(parents=True, exist_ok=True)
|
||||
scripts_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
from src import paths
|
||||
monkeypatch.setattr(paths, "get_logs_dir", lambda: log_dir)
|
||||
monkeypatch.setattr(paths, "get_scripts_dir", lambda: scripts_dir)
|
||||
|
||||
yield log_dir
|
||||
# Cleanup: Close handles if open
|
||||
session_logger.close_session()
|
||||
|
||||
def test_reset_session(temp_logs: Path) -> None:
|
||||
# 1. Open first session
|
||||
label1 = "label1"
|
||||
session_logger.open_session(label=label1)
|
||||
|
||||
subdirs = [d for d in temp_logs.iterdir() if d.is_dir()]
|
||||
assert len(subdirs) == 1
|
||||
session1_dir = subdirs[0]
|
||||
assert session1_dir.name.endswith(f"_{label1}")
|
||||
assert session_logger._comms_fh is not None
|
||||
|
||||
# 2. Reset to second session
|
||||
time.sleep(1.1)
|
||||
|
||||
label2 = "label2"
|
||||
session_logger.reset_session(label=label2)
|
||||
|
||||
subdirs = sorted([d for d in temp_logs.iterdir() if d.is_dir()], key=lambda x: x.name)
|
||||
assert len(subdirs) == 2
|
||||
session2_dir = subdirs[1]
|
||||
assert session2_dir.name.endswith(f"_{label2}")
|
||||
assert session_logger._comms_fh is not None
|
||||
|
||||
# Verify new handle points to new dir
|
||||
assert str(session2_dir) in str(Path(session_logger._comms_fh.name).resolve())
|
||||
Reference in New Issue
Block a user