Пример #1
0
    def test_queue_use_locks(self):
        q = MultiLockPriorityPoolQueue()
        t = Task("test_task", [1, 2, 3], "pool", [], {})

        q.put(t)
        q.get("pool")

        assert len(q._locks) == 3
        assert 1 in q._locks
        assert 2 in q._locks
        assert 3 in q._locks
Пример #2
0
    def test_queue_pools(self):
        q = MultiLockPriorityPoolQueue()
        t1 = Task("test_task", [1, 2, 3], "pool", [1], {})
        t2 = Task("test_task", [1, 2, 3], "pool", [2], {})

        q.put(t1)
        q.put(t2)
        task1 = q.get("pool_2")
        task2 = q.get("pool")

        assert task1 is None
        assert task2.args[0] == 1
Пример #3
0
    def test_queue_blocking_tasks(self):
        q = MultiLockPriorityPoolQueue()
        t1 = Task("test_task", [1, 2, 3], "pool", [1], {})
        t2 = Task("test_task", [1, 2, 3], "pool", [2], {})

        q.put(t1)
        q.put(t2)
        task1 = q.get("pool")
        assert task1.args[0] == 1
        assert len(q._locks) == 3

        task2 = q.get("pool")
        assert task2 is None
Пример #4
0
    def test_queue_safe_remove_active(self):
        q = MultiLockPriorityPoolQueue()
        t = Task("test_task", [1, 2, 3], "pool", [], {})

        q.put(t)
        q.get("pool")

        assert len(q._locks) == 3
        assert 1 in q._locks
        assert 2 in q._locks
        assert 3 in q._locks

        q.safe_remove(str(t.id))

        assert len(q._locks) == 0
Пример #5
0
    def test_queue_complete_task(self):
        q = MultiLockPriorityPoolQueue()

        t1 = Task("test_task", [1, 2, 3], "pool", [1], {})
        q.put(t1)

        task = q.get("pool")
        assert len(q._locks) == 3
        q.complete(str(task.id), {"stdout": "", "stderr": "", "result": "", "status": "success"})

        assert len(q._locks) == 0