Files
orisys_arm/station/test/test_preview_cache.py
T
2026-10-16 17:27:30 +08:00

28 lines
1.1 KiB
Python

import json
import tempfile
import time
from pathlib import Path
from unittest import TestCase
from unittest.mock import patch
from station import operator_camera_view as preview
class PreviewCacheTest(TestCase):
def tearDown(self):
preview.watch(set(),set())
preview._PREVIEW.clear();preview._META.clear()
def test_switch_and_stale_worker_clear_frames(self):
preview.watch({'left_color'},set())
preview._PREVIEW['left_color']=(b'123',1,1)
preview.watch({'right_color'},set())
self.assertNotIn('left_color',preview.previews())
with tempfile.TemporaryDirectory() as folder:
preview._PREVIEW['right_color']=(b'123',1,1)
payload={'frames':{},'exported_monotonic':time.monotonic()-10,'meta':{},'ages':{}}
(Path(folder)/'meta.json').write_text(json.dumps(payload))
with patch.object(preview,'_BRIDGE_DIR',Path(folder)):
preview._ingest()
self.assertEqual(preview.previews(),{})
self.assertIn('未更新',preview.state()['error'])