"""Functional tests for setting a mkt priority of product.""" import json from tests.factories import release as release_factory from tests.testutils import db def setup_data(client, product_id, country_id, valid_headers): """Setup a mkt priority to be deleted.""" existing_release = release_factory.ReleaseFactory.build( release_id=product_id) db.seed_models(existing_release) client.post( '/product/{}/mkt_priority'.format(product_id), data=json.dumps({ 'country_id': country_id, 'priority': 'a', }), headers=valid_headers ) @db.test_schema def test_delete_mkt_priority_success_with_data( client, valid_oa_headers_with_orchard_user_id, product_id, valid_headers): """Check that mkt priority works.""" country_id = 2 setup_data(client, product_id, country_id, valid_headers) response = client.delete( '/product/{}/mkt_priority/{}'.format(product_id, country_id), headers=valid_oa_headers_with_orchard_user_id ) assert response.status_code == 200 @db.test_schema def test_delete_mkt_priority_not_oa( client, valid_headers_with_orchard_user_id, product_id, valid_headers): """Check that mkt priority works.""" country_id = 2 setup_data(client, product_id, country_id, valid_headers) response = client.delete( '/product/{}/mkt_priority/{}'.format(product_id, country_id), headers=valid_headers_with_orchard_user_id ) assert response.status_code == 500 response_body = json.loads(response.data.decode()) assert response_body == { 'code': 'internal_error', 'message': 'User is forbidden' } @db.test_schema def test_delete_mkt_priority_microservice( client, valid_headers, product_id): """Check that mkt priority works.""" country_id = 2 setup_data(client, product_id, country_id, valid_headers) response = client.delete( '/product/{}/mkt_priority/{}'.format(product_id, country_id), headers=valid_headers ) assert response.status_code == 200 @db.test_schema def test_delete_mkt_priority_in_bulk( client, valid_headers, product_id): """Check that mkt priority works.""" country_id = 1 setup_data(client, product_id, country_id, valid_headers) response = client.delete( '/product/{}/mkt_priority'.format(product_id), headers=valid_headers ) assert response.status_code == 200