forgot to add stuff
This commit is contained in:
57
backend/tests/test_cache_utils.py
Normal file
57
backend/tests/test_cache_utils.py
Normal file
@ -0,0 +1,57 @@
|
||||
import tempfile
|
||||
import time
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from backend.utils import cache as cache_utils
|
||||
|
||||
|
||||
class CacheUtilsTests(unittest.TestCase):
|
||||
def setUp(self) -> None:
|
||||
self._tmp_dir = tempfile.TemporaryDirectory()
|
||||
self._old_cache_dir = cache_utils.CACHE_DIR
|
||||
cache_utils.CACHE_DIR = Path(self._tmp_dir.name) / "cache"
|
||||
|
||||
self._work_dir = Path(self._tmp_dir.name) / "work"
|
||||
self._work_dir.mkdir(parents=True, exist_ok=True)
|
||||
self._src_file = self._work_dir / "sample.txt"
|
||||
self._src_file.write_text("hello", encoding="utf-8")
|
||||
|
||||
def tearDown(self) -> None:
|
||||
cache_utils.CACHE_DIR = self._old_cache_dir
|
||||
self._tmp_dir.cleanup()
|
||||
|
||||
def test_get_file_hash_returns_none_for_missing_file(self) -> None:
|
||||
missing = self._work_dir / "missing.txt"
|
||||
self.assertIsNone(cache_utils.get_file_hash(missing))
|
||||
|
||||
def test_save_and_load_round_trip(self) -> None:
|
||||
payload = {"value": 123, "ok": True}
|
||||
saved = cache_utils.save_to_cache(self._src_file, payload, model="m1", operation="transcribe")
|
||||
self.assertTrue(saved)
|
||||
|
||||
loaded = cache_utils.load_from_cache(self._src_file, model="m1", operation="transcribe")
|
||||
self.assertEqual(payload, loaded)
|
||||
|
||||
def test_load_from_cache_respects_max_age(self) -> None:
|
||||
payload = {"value": 999}
|
||||
self.assertTrue(cache_utils.save_to_cache(self._src_file, payload, operation="transcribe"))
|
||||
|
||||
time.sleep(0.02)
|
||||
expired = cache_utils.load_from_cache(self._src_file, operation="transcribe", max_age=0.001)
|
||||
self.assertIsNone(expired)
|
||||
|
||||
def test_clear_cache_deletes_files(self) -> None:
|
||||
self.assertTrue(cache_utils.save_to_cache(self._src_file, {"a": 1}, operation="transcribe"))
|
||||
self.assertTrue(cache_utils.save_to_cache(self._src_file, {"a": 2}, operation="summarize"))
|
||||
|
||||
deleted_count = cache_utils.clear_cache()
|
||||
self.assertGreaterEqual(deleted_count, 1)
|
||||
|
||||
size_bytes, file_count = cache_utils.get_cache_size()
|
||||
self.assertEqual(size_bytes, 0)
|
||||
self.assertEqual(file_count, 0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user