def test_no_sleep(self) -> None: """Tests the case when no sleep is needed.""" def mock_overpass_query_need_sleep() -> int: return 0 mock_sleep_called = False def mock_sleep(_seconds: float) -> None: nonlocal mock_sleep_called mock_sleep_called = True with unittest.mock.patch('overpass_query.overpass_query_need_sleep', mock_overpass_query_need_sleep): with unittest.mock.patch('time.sleep', mock_sleep): cron.overpass_sleep() self.assertFalse(mock_sleep_called)
def test_no_sleep(self) -> None: """Tests the case when no sleep is needed.""" ctx = test_context.make_test_context() routes: List[test_context.URLRoute] = [ test_context.URLRoute( url="https://overpass-api.de/api/status", data_path="", result_path="tests/network/overpass-status-happy.txt") ] network = test_context.TestNetwork(routes) ctx.set_network(network) ctx.set_time(test_context.make_test_time()) cron.overpass_sleep(ctx) test_time = cast(test_context.TestTime, ctx.get_time()) self.assertEqual(test_time.get_sleep(), 0)
def test_need_sleep(self) -> None: """Tests the case when sleep is needed.""" sleep_for = 42 def mock_overpass_query_need_sleep() -> int: nonlocal sleep_for if sleep_for > 0: sleep_for = 0 return 42 return sleep_for captured_seconds = 0.0 def mock_sleep(seconds: float) -> None: nonlocal captured_seconds captured_seconds = seconds with unittest.mock.patch('overpass_query.overpass_query_need_sleep', mock_overpass_query_need_sleep): with unittest.mock.patch('time.sleep', mock_sleep): cron.overpass_sleep() self.assertEqual(captured_seconds, 42.0)