"""Functional tests around release approval queue.""" import json from tests.factories import release_approval_queue \ as release_approval_queue_factory from tests.testutils import db @db.test_schema def test_post_release_approval_success( client, release_approval_payload, valid_headers, product_id): """Test result when creating a new release_approval.""" result = client.post( '/product/{}/release-approval'.format(product_id), headers=valid_headers, data=json.dumps(release_approval_payload)) response_json = json.loads(result.data.decode('utf-8')) expected_body = { 'release_approval_id': 1, 'release_correction_id': None, 'status': 'rejected', 'release_id': 123, 'checked_out_by': None} assert result.status_code == 201 assert response_json == expected_body def test_post_release_approval_error( client, release_approval_payload, valid_headers, product_id): """Test result when creating a new release_approval and failure.""" result = client.post( '/product/{}/release-approval'.format(product_id), headers=valid_headers, data=json.dumps(release_approval_payload)) assert result.status_code == 500 @db.test_schema def test_get_last_release_approval_success( client, valid_headers, product_id): """Test result when getting the last release_approval.""" release_approval_queues = \ release_approval_queue_factory.ReleaseApprovalQueueFactory.build_batch( 2, release_id=product_id) db.seed_models(release_approval_queues) result = client.get( '/product/{}/release-approval'.format(product_id), headers=valid_headers) response_json = json.loads(result.data.decode('utf-8')) expected_body = { 'release_approval_id': 2, 'release_correction_id': None, 'status': 'checked_out', 'release_id': product_id, 'checked_out_by': None} assert result.status_code == 200 assert response_json == expected_body @db.test_schema def test_get_last_release_approval_not_found( client, valid_headers, product_id): """Test result when getting the last release_approval.""" release_approval_queues = \ release_approval_queue_factory.ReleaseApprovalQueueFactory.build_batch( 2) db.seed_models(release_approval_queues) result = client.get( '/product/{}/release-approval'.format(product_id), headers=valid_headers) assert result.status_code == 404 def test_get_last_release_approval_error( client, valid_headers, product_id): """Test result when creating a new release_approval and failure.""" result = client.get( '/product/{}/release-approval'.format(product_id), headers=valid_headers) assert result.status_code == 500