"""Tests for TrackSplit model.""" import pytest from contracts.models import track_split from tests.utils import db_operations def test_get_track_split(db_fixture, monkeypatch): """Test get track_split.""" expected_paginated_response = { 'items': [ { 'isrc': db_operations.track_split_data[0]['isrc'], 'track_split': db_operations.track_split_data[0]['track_split'], 'track_unique_id': db_operations.track_split_data[0]['track_unique_id'], } ], 'pagination': {'type': 'standard', 'offset': 1, 'limit': 2, 'total_records': 2}, } response = track_split.get_track_split( db_operations.track_split_data[0]['vendor_id'], 1, 2 ) assert response.message == expected_paginated_response @pytest.mark.parametrize( ('vendor_id', 'isrc', 'vend_contract_id', 'status'), [ (123, 'ES20I1310346', 9856, 200), (123, 'ES21K1310856', 9856, 404), (126, 'ES20I1310347', 5623, 404), ], ) def test_delete_track_split(db_fixture, vendor_id, isrc, vend_contract_id, status): """Test delete track_split.""" request_param = { 'oa_user_id': 562, 'isrc': isrc, 'vend_contract_id': vend_contract_id, } response = track_split.delete_track_split(vendor_id, request_param) assert response.status == status def test_set_track_split( db_fixture, fixture_track_split_post_request_parameters, monkeypatch ): """Test set track_split.""" vendor_id = 563 request_param = [fixture_track_split_post_request_parameters] expected_paginated_response = { 'items': [], 'pagination': {'limit': 2, 'offset': 1, 'total_records': 1, 'type': 'standard'}, } response = track_split.set_track_split(vendor_id, request_param) track_response = track_split.get_track_split(vendor_id, 1, 2) assert response.status == 200 assert track_response.message == expected_paginated_response def test_set_track_split_error( db_fixture, fixture_track_split_post_request_parameters, monkeypatch ): """Test set track_split with duplicate data.""" vendor_id = 4564 request_param = [ fixture_track_split_post_request_parameters, fixture_track_split_post_request_parameters, ] response = track_split.set_track_split(vendor_id, request_param) track_response = track_split.get_track_split(vendor_id, 1, 2) assert response.status == 409 assert len(track_response.message) == 2 def test_update_track_split(db_fixture, fixture_track_split_put_request_parameters): """Test set track_split.""" vendor_id = 123 request_param = [fixture_track_split_put_request_parameters] response = track_split.update_track_split(vendor_id, request_param) assert response.status == 200 assert response.message == {'status': 'ok'} def test_update_track_split_error( db_fixture, fixture_track_split_put_request_parameters ): """Test update track_split with data not found.""" vendor_id = 4564 request_param = [fixture_track_split_put_request_parameters] response = track_split.update_track_split(vendor_id, request_param) assert response.status == 404