"""Test create track mapping function.""" import pytest from switchboard_consumer.utils.mapping import create_track_mapping @pytest.mark.parametrize('test_input,expected', [ ([], {}), ({}, {}), ({'components': []}, {}), ({'components': None}, {}), ({'components': [{}]}, {}), ({'components': [{'sides': None}]}, {}), ({'components': [{'sides': []}]}, {}), ({'components': [{'sides': [{}]}]}, {}), ({'components': [{'sides': [{'productTracks': None}]}]}, {}), ({'components': [{'sides': [{'productTracks': []}]}]}, {}), ]) def test_create_track_mapping_with_missing_data(test_input, expected): """Test create track mapping with missing data.""" assert create_track_mapping(test_input) == expected def test_create_track_mapping_with_tracks(): """Test create track mapping with tracks.""" data = { 'components': [{ 'sides': [{ 'productTracks': [{ 'track': { 'isrc': 'GBARL7700005', 'ids': [{ 'system': 'SONY', 'localId': '12345' }] } }] }] }] } expected_mapping = { 'GBARL7700005': {'localId': '12345', 'system': 'SONY'} } mapping = create_track_mapping(data) assert mapping == expected_mapping