"""Test moving a review queue item to another queue.""" import json from datetime import datetime from freezegun import freeze_time from tests.utils.db_utils import ( create_test_queue_move_history_item, create_test_review_queue_item, ) @freeze_time("1234-02-03 00:30:00") def test_move_review_queue_item_to_queue_success(fixture_client): """Test moving a review queue item to another queue success.""" create_test_review_queue_item(review_queue_id=123, product_id=123456, status="new") result = fixture_client.patch( "/review-queue/123/queue", headers={ "Orchard-Identity-Id": "test_user_id", "Content-Type": "application/json", }, data=json.dumps({"queue_name": "under_investigation"}), ) assert result.status_code == 200 result_json = result.json assert datetime.strptime( result_json.pop("created_datetime"), "%Y-%m-%dT%H:%M:%S.%fZ" ) assert result_json == { "error_correction_id": None, "locked_at_datetime": None, "locked_by_user_id": None, "locked_until_datetime": None, "product_id": 123456, "queue_name": "under_investigation", "moved_to_queue_by_user_id": "test_user_id", "moved_to_target_id": None, "moved_to_target_name": None, "moved_to_target_email": None, "moved_to_orchadmin_user_id": None, "moved_at_datetime": "1234-02-03T00:30:00.000000Z", "move_note": None, "review_queue_id": 123, "status": "new", "submission_type": None, "submission_count": 1, "submitted_by_user_id": None, "submission_datetime": None, } def test_get_review_queue_item_queue_move_history(fixture_client): """Test getting the queue move history for a review queue item.""" # This item 456 should not be returned by get_queue_move_history since it has # a different review_queue_id. create_test_queue_move_history_item( review_queue_id=456, queue_name="under_investigation", previous_queue_name="initial", moved_to_queue_by_user_id="test_user_id", ) create_test_queue_move_history_item( review_queue_id=123, queue_name="under_investigation", previous_queue_name="initial", moved_to_queue_by_user_id="test_user_id", ) create_test_queue_move_history_item( review_queue_id=123, queue_name="initial", previous_queue_name="under_investigation", moved_to_queue_by_user_id="abcdefg", ) result = fixture_client.get( "/review-queue/123/queue/move-history", headers={ "Orchard-Identity-Id": "peter-123", "Content-Type": "application/json", }, ) queue_move_history_items = result.json["items"] queue_move_history_item_0, queue_move_history_item_1 = queue_move_history_items assert result.status_code == 200 # Remove created_datetime from dict since it's set by the database and will # change each time the test is run. assert datetime.strptime( queue_move_history_item_0.pop("moved_at_datetime"), "%Y-%m-%dT%H:%M:%S.%fZ" ) assert queue_move_history_item_0 == { "queue_move_history_id": 2, "queue_name": "under_investigation", "previous_queue_name": "initial", "review_queue_id": 123, "moved_to_queue_by_user_id": "test_user_id", "moved_to_target_id": None, "moved_to_target_name": None, "moved_to_target_email": None, "moved_to_orchadmin_user_id": None, "move_note": None, "escalation_type": None } assert datetime.strptime( queue_move_history_item_1.pop("moved_at_datetime"), "%Y-%m-%dT%H:%M:%S.%fZ" ) assert queue_move_history_item_1 == { "queue_move_history_id": 3, "queue_name": "initial", "previous_queue_name": "under_investigation", "review_queue_id": 123, "moved_to_queue_by_user_id": "abcdefg", "moved_to_target_id": None, "moved_to_target_name": None, "moved_to_target_email": None, "moved_to_orchadmin_user_id": None, "move_note": None, "escalation_type": None }