Files
loader/tests/test_version_collector.py
Oleksandr Bezdieniezhnykh 9a0248af72 [AZ-185][AZ-186] Batch 2
Made-with: Cursor
2026-04-15 07:32:37 +03:00

66 lines
2.1 KiB
Python

import os
import subprocess
import tempfile
import unittest
from version_collector import VersionCollector
class TestVersionCollector(unittest.TestCase):
def test_ac1_version_collector_reads_local_state(self):
# Arrange
tmp = tempfile.mkdtemp()
open(os.path.join(tmp, "azaion-2026-03-10.trt"), "wb").close()
def fake_run(cmd, **kwargs):
if cmd[:3] == ["docker", "images", "--format"]:
return subprocess.CompletedProcess(
cmd,
0,
stdout="azaion/annotations:arm64_2026-03-01\n",
stderr="",
)
raise AssertionError(f"unexpected cmd {cmd}")
vc = VersionCollector(tmp, subprocess_run=fake_run)
# Act
got = vc.collect_as_dicts()
# Assert
self.assertEqual(
got,
[
{"resource_name": "detection_model", "version": "2026-03-10"},
{"resource_name": "annotations", "version": "arm64_2026-03-01"},
],
)
def test_ac6_cache_invalidates_after_changes(self):
# Arrange
tmp = tempfile.mkdtemp()
open(os.path.join(tmp, "azaion-2026-01-01.trt"), "wb").close()
def fake_run(cmd, **kwargs):
if cmd[:3] == ["docker", "images", "--format"]:
return subprocess.CompletedProcess(cmd, 0, stdout="", stderr="")
raise AssertionError(f"unexpected cmd {cmd}")
vc = VersionCollector(tmp, subprocess_run=fake_run)
first = vc.collect_as_dicts()
open(os.path.join(tmp, "azaion-2026-02-01.trt"), "wb").close()
second_cached = vc.collect_as_dicts()
vc.invalidate()
third = vc.collect_as_dicts()
# Assert
self.assertEqual(
first,
[{"resource_name": "detection_model", "version": "2026-01-01"}],
)
self.assertEqual(second_cached, first)
self.assertEqual(
third,
[{"resource_name": "detection_model", "version": "2026-02-01"}],
)
if __name__ == "__main__":
unittest.main()