Spaces:
Running
Running
Thang6822
Update Kronos Platform v6.1.0: Complete backend refactor and frontend UI optimization
a721dfa | from __future__ import annotations | |
| import os | |
| import tempfile | |
| import unittest | |
| from backend.cache_utils import PersistentCache, TTLCache | |
| class _FakeLogger: | |
| def error(self, msg: str, *args: object, **kwargs: object) -> None: | |
| return None | |
| def info(self, msg: str, *args: object, **kwargs: object) -> None: | |
| return None | |
| class CacheUtilsTests(unittest.TestCase): | |
| def test_ttl_cache_returns_defensive_copy(self) -> None: | |
| cache = TTLCache() | |
| payload = {"forecast": [{"price": 100.0}], "meta": {"source": "memory"}} | |
| cache.set("sample", payload, ttl_seconds=30) | |
| payload["forecast"][0]["price"] = 999.0 | |
| payload["meta"]["source"] = "mutated" | |
| cached_once = cache.get("sample") | |
| self.assertEqual(cached_once["forecast"][0]["price"], 100.0) | |
| self.assertEqual(cached_once["meta"]["source"], "memory") | |
| cached_once["forecast"][0]["price"] = 555.0 | |
| cached_twice = cache.get("sample") | |
| self.assertEqual(cached_twice["forecast"][0]["price"], 100.0) | |
| def test_persistent_cache_queue_copies_payload_before_enqueue(self) -> None: | |
| class FakeQueue: | |
| def __init__(self) -> None: | |
| self.item = None | |
| def put_nowait(self, item: tuple[str, object, int]) -> None: | |
| self.item = item | |
| fd, temp_path = tempfile.mkstemp(suffix=".db") | |
| os.close(fd) | |
| try: | |
| cache = PersistentCache( | |
| db_path=temp_path, | |
| cache_version_getter=lambda: "test-version", | |
| logger=_FakeLogger(), | |
| ) | |
| queue = FakeQueue() | |
| cache._queue = queue | |
| payload = {"nested": {"value": 1}} | |
| cache.set("queued", payload, ttl=60) | |
| payload["nested"]["value"] = 7 | |
| self.assertIsNotNone(queue.item) | |
| _, queued_payload, queued_ttl = queue.item | |
| self.assertEqual(queued_ttl, 60) | |
| self.assertEqual(queued_payload["nested"]["value"], 1) | |
| finally: | |
| if os.path.exists(temp_path): | |
| try: | |
| os.remove(temp_path) | |
| except PermissionError: | |
| pass | |
| if __name__ == "__main__": | |
| unittest.main() | |