示例#1
0
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
示例#2
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
示例#3
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)
示例#4
0
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)]