"""Measured producer rate without camera hardware or wall-clock sleeps.""" import unittest from unittest.mock import patch from halloween.camera import CameraStream class CameraRateTest(unittest.TestCase): def test_measured_rate_and_stale_frames(self): camera = CameraStream() with patch('halloween.camera.time.monotonic') as clock: clock.return_value = 10. self.assertEqual(camera.status()['fps'], 0) for i in range(60): clock.return_value = 10+i/15 camera._publish(b'test') self.assertEqual(camera.status()['fps'], 15.) clock.return_value += 2 self.assertEqual(camera.status()['fps'], 0) self.assertEqual(CameraStream(demo=True).status()['target_fps'], 5)