import json from unittest.mock import Mock from unittest.mock import patch import pytest from masters_registry.models import ownership from tests.helpers import patches def make_post(client, valid_headers, data): url = '/ownership/unlock/isrc' valid_headers['Content-Type'] = 'application/json' return client.post(url, data=json.dumps(data), headers=valid_headers) @pytest.fixture def valid_data(): return { 'lock_reason': 'reason', 'isrc': 'ABC123456', 'territories': ['AF', 'AS', 'DZ'] } @patch( 'masters_registry.models.ownership.get_lock_history_for_single_reason', new=patches.ownership_get_lock_history_for_single_reason) @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) @patch( 'masters_registry.models.ownership.update_active_record', autospec=True) def test_post_unlock_territories( update_active_record, monkeypatch, client, valid_headers, valid_data, feature_engine): """Test post valid data """ update_multiple_ownerships = Mock() monkeypatch.setattr( ownership, 'update_multiple_ownerships', update_multiple_ownerships) res = make_post(client, valid_headers, valid_data) assert update_active_record.call_count == 1 assert res.status_code == 200