"""Functional tests for endpoint to get list items in review queue. GET /review-queue """ import json from tests.utils.db_utils import create_test_review_queue_item def test_get_review_queue_success(fixture_client): """Test get items from review queue is successful.""" create_test_review_queue_item(product_id=123456, status="new") request_url = "/review-queue" server_response = fixture_client.get(request_url) response_json = json.loads(server_response.data.decode("utf-8")) assert server_response.status_code == 200 for item in response_json["items"]: assert "product_id" in item assert item["status"] == "new" def test_get_review_queue_params_passed(fixture_client): """Test get items from review queue by passing status, page limit and offset.""" create_test_review_queue_item(product_id=78947, status="complete") create_test_review_queue_item(product_id=45667, status="complete") create_test_review_queue_item(product_id=12345, status="new") request_url = "/review-queue?status=complete&page_limit=1&page_offset=1" server_response = fixture_client.get(request_url) response_json = json.loads(server_response.data.decode("utf-8")) assert server_response.status_code == 200 assert len(response_json["items"]) == 1 for item in response_json["items"]: assert "product_id" in item assert item["status"] == "complete" def test_get_review_queue_item(fixture_client): """Test get individual review queue item.""" create_test_review_queue_item(product_id=78947, status="complete") create_test_review_queue_item(product_id=45667, status="complete") create_test_review_queue_item(product_id=12345, status="new") request_url = "/review-queue?review_queue_id=3" server_response = fixture_client.get(request_url) response_json = json.loads(server_response.data.decode("utf-8")) assert server_response.status_code == 200 assert len(response_json["items"]) == 1 for item in response_json["items"]: assert "product_id" in item assert item["status"] == "new" def test_get_review_queue_item_by_product_id(fixture_client): """Test get individual review queue item.""" create_test_review_queue_item(product_id=123, status="complete") create_test_review_queue_item(product_id=123, status="new") request_url = "/review-queue?product_id=123" server_response = fixture_client.get(request_url) response_json = json.loads(server_response.data.decode("utf-8")) assert server_response.status_code == 200 assert len(response_json["items"]) == 1 for item in response_json["items"]: assert "product_id" in item assert item["status"] == "new" def test_get_review_queue_empty(fixture_client): """Test get items from review queue is successful when no items found.""" request_url = "/review-queue" server_response = fixture_client.get(request_url) response_json = json.loads(server_response.data.decode("utf-8")) assert server_response.status_code == 200 assert len(response_json["items"]) == 0 def test_unsubmit_endpoint_not_found(fixture_client): """Test unsubmit endpoint not found.""" request_url = "review-queue/product/123" server_response = fixture_client.delete( request_url, headers={"Orchard-Identity-Id": "foo"} ) assert server_response.status_code == 404, server_response.data def test_unsubmit_endpoint_success(fixture_client): """Test unsubmit endpoint success.""" request_url = "review-queue/product/123" create_test_review_queue_item(product_id=123, status="new") server_response = fixture_client.delete( request_url, headers={"Orchard-Identity-Id": "foo"} ) assert server_response.status_code == 204 def test_unsubmit_endpoint_does_not_update_complete(fixture_client): """Test unsubmit endpoint noop.""" request_url = "review-queue/product/456" create_test_review_queue_item(product_id=456, status="complete") server_response = fixture_client.delete( request_url, headers={"Orchard-Identity-Id": "foo"} ) assert server_response.status_code == 404