From 3de71d936f28a305e18bdc98bf136b1d2c643eea Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Thu, 15 May 2025 13:01:52 +0300 Subject: Only pop() tasks added with past timestamp --- test.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'test.py') diff --git a/test.py b/test.py index 2ae9c48..144d9ce 100644 --- a/test.py +++ b/test.py @@ -170,6 +170,40 @@ class TestFemtoQueue(unittest.TestCase): # Queue should now be empty self.assertIsNone(q.pop()) + def test_only_past_tasks_are_popped(self): + dir = mkdtemp() + q = FemtoQueue(data_dir=dir, node_id="node1") + + set_time_mock(1000) + q.push("foobar".encode("utf-8")) + + set_time_mock(0) + task = q.pop() + self.assertIsNone(task) + + set_time_mock(2000) + task = q.pop() + self.assertIsNotNone(task) + + reset_time_mock() + + def test_schedule_for_future(self): + dir = mkdtemp() + q = FemtoQueue(data_dir=dir, node_id="node1") + + future_ts = time.time() + 60 + future_ts_us = int(1_000_000 * future_ts) + q.push("foobar".encode("utf-8"), time_us=future_ts_us) + + task = q.pop() + self.assertIsNone(task) + + set_time_mock(future_ts + 60) + task = q.pop() + self.assertIsNotNone(task) + + reset_time_mock() + if __name__ == "__main__": unittest.main() -- cgit v1.3