"""Test Approve.""" import json from unittest.mock import MagicMock, NonCallableMagicMock import requests from tests.utils.db_utils import create_test_review_queue_item def test_approve_by_id(mocker, fixture_client, request_engine): """Test approve.""" mocker.patch( "product_review.util.sfn.is_enabled_complete_review_v2", return_value=False, ) mocker.patch( "product_review.util.sfn.ows_product_model.get_product", return_value={"vendor_id": 123}, ) request_engine["ows-product-workflow"].add_spec( "GET", "/product/67/correction", status=404, response={}, ) request_engine["ows-product-digital"].add_spec( "PUT", "/product/audio/67/approve", status=200, response="product approved" ) request_engine["ows-product-digital"].add_spec( "GET", "/product/audio/67/validate", status=200, response={ "validations": { "is_valid": True, "errors": [], "warnings": [], "tracks": {}, } }, ) request_engine["ows-product"].add_spec( "GET", "/product/67", status=200, response={"status": "transfer_to_content"} ) mocker.patch.object( requests, "get", return_value=NonCallableMagicMock( status_code=200, json=MagicMock(return_value={"query": {"code": "test-code"}}), ), ) mocker.patch.object( requests, "request", return_value=NonCallableMagicMock(status_code=200) ) review_queue_inputs = [ {"product_id": 56, "status": "new"}, {"product_id": 67, "status": "new"}, {"product_id": 78, "status": "complete"}, ] for item in review_queue_inputs: create_test_review_queue_item( product_id=item["product_id"], status=item["status"] ) result = fixture_client.post( "/approve/2", headers={ "Orchard-Identity-Id": "peter-123", "Orchard-Profile-Type": "ProfileType", "Orchard-Profile-Id": "profile-id", "Content-Type": "application/json", }, data=json.dumps({"note": "because"}), ) assert result.status_code == 200 assert result.json is None