import json from unittest.mock import patch import pytest from masters_registry.constant import error from masters_registry.constant import field_const from tests.helpers import patches def make_post(client, valid_headers, data): url = '/ownership/unlock/isrcs' valid_headers['Content-Type'] = 'application/json' return client.post(url, data=json.dumps(data), headers=valid_headers) @pytest.fixture def valid_data(): return { 'isrcs': ['ABC123456', 'DEF890123', 'ZW1010600008'], 'territories': ['AF', 'AS', 'DZ'] } @pytest.fixture def invalid_isrc_data(): return { 'isrcs': 'ABC12345', 'territories': ['CA', 'US'] } @pytest.fixture def invalid_territories_data(): return { 'isrcs': ['ABC1234567890123', 'BCA09876543210'], 'territories': ['AA', 'BB'] } @patch( 'masters_registry.models.ows_territories.get_territories', new=patches.ows_territories_get_territories_patch) @patch( 'masters_registry.models.ownership.get_existing_isrcs_in_tracks', new=patches.ownership_get_existing_isrcs_in_tracks_patch) @patch( 'masters_registry.models.ownership.get_existing_isrcs_in_active_table', new=patches.ownership_get_existing_isrcs_in_active_table_patch) def test_post_invalid_isrcs(client, valid_headers, valid_data, feature_engine): """Test post invalid isrcs """ request_data = valid_data request_data[field_const.ISRCS] = ['XX123456', 'YY1234567'] res = make_post(client, valid_headers, valid_data) assert res.status_code == 400 @patch( 'masters_registry.models.ows_territories.get_territories', new=patches.ows_territories_get_territories_patch) @patch( 'masters_registry.models.ownership.get_existing_isrcs_in_tracks', new=patches.ownership_get_existing_isrcs_in_tracks_patch) @patch( 'masters_registry.models.ownership.get_existing_isrcs_in_active_table', new=patches.ownership_get_existing_isrcs_in_active_table_patch) def test_post_invalid_territories( client, valid_headers, valid_data, feature_engine): """Test post invalid territories """ request_data = valid_data request_data[field_const.TERRITORIES].append('XX') res = make_post(client, valid_headers, request_data) assert json.loads(res.data.decode())['code'] == error.INVALID_TERRITORIES assert res.status_code == 400