import json import tempfile import unittest from pathlib import Path from services import runtime_state class RuntimeStateTests(unittest.TestCase): def test_set_and_get_persist_between_loads(self): with tempfile.TemporaryDirectory() as tmp: path = Path(tmp) / "runtime.json" runtime_state.configure(str(path)) runtime_state.set_state("foo", {"bar": 1}) self.assertEqual(runtime_state.get("foo"), {"bar": 1}) # Force a fresh in-memory state and load from disk again. runtime_state._STATE = {} # type: ignore[attr-defined] runtime_state._LOADED = False # type: ignore[attr-defined] self.assertEqual(runtime_state.get("foo"), {"bar": 1}) raw = json.loads(path.read_text(encoding="utf-8")) self.assertEqual(raw.get("foo"), {"bar": 1}) if __name__ == "__main__": unittest.main()