Co-authored-by: Antoine <33425718+anth2o@users.noreply.github.com>
Co-authored-by: Bastien <bastien.baret@gmail.com>
Co-authored-by: Clément Sirieix <clement.sirieix@mistral.ai>
Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com>
Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai>
Co-authored-by: Maxime Dolores <maxime.dolores@ext.mistral.ai>
Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com>
Co-authored-by: Nelson PROIA <144663685+Nelson-PROIA@users.noreply.github.com>
Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai>
Co-authored-by: Quentin <quentin.torroba@mistral.ai>
Co-authored-by: Robin Gullo <robin.gullo@mistral.ai>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
Clément Drouin 2026-04-28 17:44:07 +02:00 committed by GitHub
parent a83c81ecf5
commit 632ea8c032
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
253 changed files with 13965 additions and 2525 deletions

View file

@ -39,10 +39,11 @@ def create_test_session():
messages: list[LLMMessage] | None = None,
metadata: dict | None = None,
encoding: str = "utf-8",
working_directory: Path | None = Path("/test"),
) -> Path:
"""Create a test session directory with messages and metadata files."""
# Create session directory
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
session_folder = session_dir / f"test_{timestamp}_{session_id[:8]}"
session_folder.mkdir(exist_ok=True)
@ -79,7 +80,7 @@ def create_test_session():
},
"system_prompt": {"content": "System prompt", "role": "system"},
"username": "testuser",
"environment": {"working_directory": "/test"},
"environment": {"working_directory": str(working_directory)},
"git_commit": None,
"git_branch": None,
}
@ -129,6 +130,93 @@ class TestSessionLoaderFindLatestSession:
assert result.exists()
assert result == latest
@pytest.mark.parametrize(
("cwd", "expected_id"),
[
pytest.param(
Path("/home/user/project-a"), "aaaaaaaa", id="get_latest_in_existing_a"
),
pytest.param(
Path("/home/user/project-b"), "bbbbbbbb", id="get_latest_in_existing_b"
),
pytest.param(
Path("/home/user/project-c"), None, id="get_latest_in_missing_c"
),
pytest.param(None, "aaaaaaaa", id="get_latest_globally"),
],
)
def test_find_latest_session_cwd_filtering(
self,
session_config: SessionLoggingConfig,
create_test_session,
cwd: Path | None,
expected_id: str | None,
) -> None:
session_dir = Path(session_config.save_dir)
create_test_session(
session_dir,
"aaaaaaaa-session",
working_directory=Path("/home/user/project-a"),
)
time.sleep(0.01)
create_test_session(
session_dir,
"bbbbbbbb-session",
working_directory=Path("/home/user/project-b"),
)
time.sleep(0.01)
second_b = create_test_session(
session_dir,
"bbbbbbbb-session",
working_directory=Path("/home/user/project-b"),
)
time.sleep(0.01)
second_a = create_test_session(
session_dir,
"aaaaaaaa-session",
working_directory=Path("/home/user/project-a"),
)
assert len(list(session_dir.glob("test_*"))) == 4
expected: Path | None
if expected_id == "aaaaaaaa":
expected = second_a
elif expected_id == "bbbbbbbb":
expected = second_b
elif expected_id is None:
expected = None
else:
raise NotImplementedError(expected_id)
result = SessionLoader.find_latest_session(
session_config, working_directory=cwd
)
assert result == expected
def test_find_latest_session_cwd_filtering_skips_invalid_metadata(
self, session_config: SessionLoggingConfig, create_test_session
) -> None:
session_dir = Path(session_config.save_dir)
expected = create_test_session(
session_dir,
"valid-cwd-session",
working_directory=Path("/home/user/project-a"),
)
time.sleep(0.01)
invalid_metadata_session = create_test_session(
session_dir,
"invalid-metadata",
working_directory=Path("/home/user/project-a"),
)
(invalid_metadata_session / "meta.json").write_text("{}")
result = SessionLoader.find_latest_session(
session_config, working_directory=Path("/home/user/project-a")
)
assert result == expected
def test_find_latest_session_nonexistent_save_dir(self) -> None:
"""Test finding latest session when save directory doesn't exist."""
# Modify config to point to non-existent directory