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_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"
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_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
def test_transaction_commit_remove_schedule_items(): queue = SchedulingQueue( f"test_transaction_commit_remove_schedule_queue", SortedQueueClient(HOST, PORT, DB), ) queue.initialize() output = queue.schedule_item(current_timestamp(), "test item") assert output == 1 queue.begin_transaction() queue.remove_item("test 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) == 0