28 lines
1.1 KiB
Python
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'])
|