"""Functional tests for updating the not_for_distribution flag of product.""" import json from tests.factories import release as release_factory from tests.testutils import db @db.test_schema def test_set_not_for_distribution_success_with_data( client, valid_oa_headers_with_orchard_user_id, product_id): """Check that update not_for_distribution works.""" existing_release = release_factory.ReleaseFactory.build( release_id=product_id) db.seed_models(existing_release) response = client.put( '/product/{}/not_for_distribution'.format(product_id), data=json.dumps({ 'not_for_distribution': 'NotforFurtherDistribution' }), headers=valid_oa_headers_with_orchard_user_id ) assert response.status_code == 200 response_body = json.loads(response.data.decode()) assert response_body.get('not_for_distribution') == 'NotforFurtherDistribution' @db.test_schema def test_set_not_for_distribution_not_oa( client, valid_headers_for_vendor, product_id): """Check that setting not_for_distribution is not allowed for non-OA.""" existing_release = release_factory.ReleaseFactory.build( release_id=product_id) db.seed_models(existing_release) response = client.put( '/product/{}/not_for_distribution'.format(product_id), data=json.dumps({ 'not_for_distribution': 'NotforFurtherDistribution' }), headers=valid_headers_for_vendor ) assert response.status_code == 403