"""Track Utils test module.""" from src.utils.track_utils import clean_explicit_field from src.utils.track_utils import clean_tracks_with_null_product_release_dates from src.utils.track_utils import extract_tracks_isrcs from src.utils.track_utils import format_label_id_field from src.utils.track_utils import select_primary_track import pytest def test_clean_explicit(): """Test set value when explicit is unknown.""" tracks = [ {'tuid': '456', 'name': 'track1', 'explicit': ''}, {'tuid': '123', 'name': 'track2', 'explicit': 'N'} ] clean_explicit_field(tracks) assert tracks == [ {'tuid': '456', 'name': 'track1', 'explicit': 'U'}, {'tuid': '123', 'name': 'track2', 'explicit': 'N'} ] def test_clean_explicit_empty(): """Test empty tracks list is safe.""" tracks = [] clean_explicit_field(tracks) assert tracks == [] def test_clean_tracks_with_null_product_release_dates(): """Test clean tracks with null product release dates.""" tracks = [ { 'tuid': '123', 'name': 'track1', 'product': { 'release_date': '2019-06-15' } }, { 'tuid': '456', 'name': 'track2', 'product': { 'release_date': None } } ] cleaned_tracks = clean_tracks_with_null_product_release_dates(tracks) assert cleaned_tracks == [tracks[0]] def test_select_primary_track(): """Test select primary and remove tuid.""" tracks = [ {'tuid': '456', 'name': 'track1'}, {'tuid': '123', 'name': 'track2'} ] select_primary_track(tracks, 123) assert tracks == [ {'primary': False, 'name': 'track1', 'tuid': '456'}, {'primary': True, 'name': 'track2', 'tuid': '123'} ] def test_select_primary_track_empty(): """Test empty track list is safe.""" tracks = [] select_primary_track(tracks, 123) assert tracks == [] def test_select_primary_track_many_results(): """Test exception on many matches.""" tracks = [ {'tuid': '123', 'name': 'track1'}, {'tuid': '123', 'name': 'track2'} ] with pytest.raises(Exception) as e: select_primary_track(tracks, 123) assert str(e.value) == 'Unexpected primary track count of 2!' def test_select_primary_track_no_results(): """Test exception on no match.""" tracks = [ {'tuid': '456', 'name': 'track1'}, {'tuid': '123', 'name': 'track2'} ] with pytest.raises(Exception) as e: select_primary_track(tracks, 789) assert str(e.value) == 'Unexpected primary track count of 0!' def test_format_label_field(): """Test formatted label id field.""" tracks = [ { 'tuid': '123', 'product': { 'label': { 'id': { 'vendorId': 123, 'subaccountId': 456 } } } }, { 'tuid': '123', 'product': { 'label': { 'id': { 'vendorId': 123, 'subaccountId': 0 } } } }, ] format_label_id_field(tracks) assert tracks == [ { 'tuid': '123', 'product': { 'label': { 'id': { 'vendor': 123, 'subaccount': 456 } } } }, { 'tuid': '123', 'product': { 'label': { 'id': { 'vendor': 123, 'subaccount': 0 } } } }, ] def test_extract_tracks_isrcs(): """Test extracting isrcs list from the tracks list.""" tracks = [ { 'tuid': '123', 'isrc': 'CAM460402039' }, { 'tuid': '123', 'isrc': 'CAM460402039' }, { 'tuid': '123', 'isrc': 'USJE61303539' }, { 'tuid': '123', 'isrc': 'USJE61303494' }, ] isrcs = extract_tracks_isrcs(tracks) assert len(isrcs) == 3 assert 'CAM460402039' in isrcs assert 'USJE61303494' in isrcs assert 'USJE61303539' in isrcs