def test_drain_queue(): Q = MPQueue() items = list(Q.drain()) assert items == [] expected = [f"ITEM{idx}" for idx in range(10)] for item in expected: Q.put(item) items = list(Q.drain()) assert items == expected num_left = Q.safe_close() assert num_left == 0
def test_mpqueue_get(): Q = MPQueue() item = Q.safe_get(None) assert item is None Q.put("ITEM1") Q.put("ITEM2") assert Q.safe_get(0.02) == "ITEM1" assert Q.safe_get(0.02) == "ITEM2" assert Q.safe_get(0.02) is None assert Q.safe_get(None) is None num_left = Q.safe_close() assert num_left == 0
def test_send_worker(caplog): TEST_FILE_NAME = "test_send_file.txt" class TestSendWorker(SendWorker): def startup(self): self.send_file = open(TEST_FILE_NAME, "w") send_q = MPQueue() send_q.put(EventMessage("TEST", "OBSERVATION", "SOME DATA 1")) send_q.put(EventMessage("TEST", "OBSERVATION", "SOME DATA 2")) send_q.put(EventMessage("TEST", "OBSERVATION", "SOME DATA 3")) send_q.put(EventMessage("TEST", "OBSERVATION", "SOME DATA 4")) send_q.put(EventMessage("TEST", "OBSERVATION", "SOME DATA 5")) try: items = _proc_worker_wrapper_helper(caplog, TestSendWorker, args=(send_q,), expect_shutdown_evt=True, alarm_secs=1) assert items == [] with open("test_send_file.txt", "r") as f: for idx, line in enumerate(f): assert line == f"OBSERVATION::SOME DATA {idx + 1}\n" finally: send_q.safe_close() if os.path.exists(TEST_FILE_NAME): os.remove(TEST_FILE_NAME)
def test_queue_proc_worker(caplog): work_q = MPQueue() work_q.put(1) work_q.put(2) work_q.put(3) work_q.put(4) work_q.put("END") work_q.put(5) items = _proc_worker_wrapper_helper(caplog, QueueProcWorkerTest, args=(work_q, ), expect_shutdown_evt=False) assert len(items) == 4 assert items == [f'DONE {idx + 1}' for idx in range(4)]