"""Test rejection.""" from product_review.models.rejection import Rejection from tests.utils.db_utils import create_test_review_queue_item def test_save_rejection_no_date(fixture_client): """Test saving a rejection without a date.""" create_test_review_queue_item(product_id=4, status="new") result = fixture_client.post( "/review-queue/1/rejection", json={"user_id": "abc", "note": "foo"}, headers={ "Orchard-Profile-Type": "ContentProfile", "Orchard-Identity-Uuid": "def", }, ) assert result.status_code == 200, result.json new_record = Rejection.query.filter(Rejection.review_queue_id == 1).first() assert new_record.created_datetime is not None assert new_record.user_id == "abc" def test_save_rejection_with_date(fixture_client): """Test saving a rejection with a date.""" create_test_review_queue_item(product_id=4, status="new") result = fixture_client.post( "/review-queue/1/rejection", json={ "user_id": "abc", "created_datetime": "2023-03-22 21:13:37.666367", "note": "foo", }, ) assert result.status_code == 200, result.json new_record = Rejection.query.filter(Rejection.review_queue_id == 1).first() assert new_record.created_datetime.isoformat() == "2023-03-22T21:13:37.666367" def test_save_rejection_not_found(fixture_client): """Test saving a rejection for a non-existent item.""" result = fixture_client.post( "/review-queue/1/rejection", json={"user_id": "abc", "note": "foo"} ) assert result.status_code == 404, result.json def test_save_rejection_already_complete(fixture_client): """Test saving a rejection for a completed item.""" create_test_review_queue_item(product_id=4, status="complete") result = fixture_client.post( "/review-queue/1/rejection", json={"user_id": "abc", "note": "foo"} ) assert result.status_code == 400, result.json