diff --git a/src/re_agent/core/session.py b/src/re_agent/core/session.py index 1bb795c..41f9b5b 100644 --- a/src/re_agent/core/session.py +++ b/src/re_agent/core/session.py @@ -29,7 +29,7 @@ def save(self) -> None: self.path.parent.mkdir(parents=True, exist_ok=True) tmp = self.path.with_suffix(".tmp") tmp.write_text(json.dumps(self._data, indent=2), encoding="utf-8") - tmp.rename(self.path) + tmp.replace(self.path) def record_result(self, result: ReversalResult) -> None: addr = normalize_address(result.target.address) diff --git a/tests/test_core/test_session.py b/tests/test_core/test_session.py new file mode 100644 index 0000000..d99ee07 --- /dev/null +++ b/tests/test_core/test_session.py @@ -0,0 +1,17 @@ +from pathlib import Path + +from re_agent.core.session import Session + + +def test_session_save_replaces_existing_file(tmp_path: Path) -> None: + session_file = tmp_path / "progress.json" + + session = Session(session_file) + session.save() + + assert session_file.exists() + + session._data["runs"].append({"test": 1}) + session.save() + + assert session_file.exists() \ No newline at end of file