def test_get_scheduled_items_slice():
    queue = SchedulingQueue(f"test_get_scheduled_items_slice",
                            SortedQueueClient(HOST, PORT, DB))
    queue.initialize()

    output = queue.schedule_item(current_timestamp(), "test item")
    assert output == 1

    output = queue.schedule_item(current_timestamp(), "test item1")
    assert output == 1

    output = queue.schedule_item(current_timestamp(), "test item2")
    assert output == 1

    time.sleep(1)

    get_output = queue.get_scheduled_items(with_scores=False, start=0, num=2)

    assert isinstance(get_output, list)
    assert len(get_output) == 2
    assert get_output[0].decode("utf-8") == "test item"
    assert get_output[1].decode("utf-8") == "test item1"

    get_output = queue.get_scheduled_items(with_scores=False, start=2, num=1)

    assert isinstance(get_output, list)
    assert len(get_output) == 1
    assert get_output[0].decode("utf-8") == "test item2"
예제 #2
0
def get_queue(
    queue_type,
    queue_name,
    host=HOST,
    port=PORT,
    auth_token=None,
    ssl=False,
    iterator_timeout=0,
):
    host = HOST if host is None else host
    port = PORT if port is None else port
    auth_token = None if auth_token is None else auth_token

    if queue_type == "list":
        return ListQueue(
            queue_name,
            ListQueueClient(host, port, DB, auth_token, ssl),
            iterator_timeout,
        )
    elif queue_type == "sorted":
        return SchedulingQueue(
            queue_name, SortedQueueClient(host, port, DB, auth_token, ssl)
        )
    else:
        raise ModuleNotFoundError(
            f"{queue_type} is not a valid queue type, options include 'list', 'sorted'"
        )
def test_remove_items():
    queue = SchedulingQueue(f"test_remove_items_queue",
                            SortedQueueClient(HOST, PORT, DB))
    queue.initialize()
    output = queue.schedule_item(current_timestamp(), "test item")
    assert output == 1

    time.sleep(1)

    output = queue.remove_item("test item")
    assert output == 1
def test_get_scheduled_items():
    queue = SchedulingQueue(f"test_get_scheduled_items_queue",
                            SortedQueueClient(HOST, PORT, DB))
    queue.initialize()
    output = queue.schedule_item(current_timestamp(), "test item")
    assert output == 1

    time.sleep(1)

    get_output = queue.get_scheduled_items(with_scores=False)
    assert isinstance(get_output, list)
    assert get_output[0].decode("utf-8") == "test item"
def test_transaction_commit_schedule_items():
    queue = SchedulingQueue(
        f"test_transaction_commit_schedule_items_queue",
        SortedQueueClient(HOST, PORT, DB),
    )
    queue.initialize()
    output = queue.schedule_item(current_timestamp(), "test item")
    assert output == 1

    queue.begin_transaction()
    queue.schedule_item(current_timestamp(), "test transaction item")
    queue.commit_transaction()

    time.sleep(1)

    get_output = queue.get_scheduled_items(with_scores=False)
    assert isinstance(get_output, list)
    assert len(get_output) == 2

    assert get_output[0].decode("utf-8") == "test item"
    assert get_output[1].decode("utf-8") == "test transaction item"
def test_list_all():
    queue = SchedulingQueue(f"test_list_all_queue",
                            SortedQueueClient(HOST, PORT, DB))
    queue.initialize()
    ft = future_timestamp()
    queue.schedule_item(ft, "test item")
    queue.schedule_item(future_timestamp(), "test item2")
    queue.schedule_item(future_timestamp(), "test item3")
    queue.schedule_item(future_timestamp(), "test item4")
    queue.schedule_item(future_timestamp(), "test item5")

    time.sleep(1)

    get_output = queue.list_all()
    assert len(get_output) == 5
    assert isinstance(get_output, list)
    assert get_output[0][1] == ft