mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-18 18:16:38 +03:00
fix(session): preserve history across storage relocation
Co-authored-by: lmzopq <1646888+lmzopq@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user