Files
nanobot/tests/cli/test_session_restore.py
T

32 lines
1.2 KiB
Python

from pathlib import Path
from typer.testing import CliRunner
from nanobot.cli import commands
from nanobot.config.loader import load_config
from nanobot.session.manager import SessionManager
def test_sessions_restore_workspace_command_prepares_downgrade(
tmp_path: Path,
monkeypatch,
) -> None:
workspace = tmp_path / "workspace"
config_path = tmp_path / "instance" / "config.json"
config = load_config(config_path)
config.agents.defaults.workspace = str(workspace)
manager = SessionManager(workspace, sessions_root=config_path.parent / "sessions")
session = manager.get_or_create("cli:rollback")
session.add_message("user", "restore-me")
manager.save(session, fsync=True)
monkeypatch.setattr(commands, "_load_runtime_config", lambda *_args: config)
result = CliRunner().invoke(commands.app, ["sessions", "restore-workspace"])
assert result.exit_code == 0, result.output
assert "Restored 1 session file(s)" in result.output
restored = workspace / "sessions" / manager._get_session_path(session.key).name
assert restored.exists()
assert "restore-me" in restored.read_text(encoding="utf-8")
assert manager._get_session_path(session.key).exists()