"""Test product utilities.""" import pytest from switchboard_consumer.utils.product import get_isrcs, get_track_arrangement @pytest.mark.parametrize('test_input,expected', [ (None, set()), ({}, set()), ([], set()), ({'components': None}, set()), ({'components': []}, set()), ({'components': [{'sides': None}]}, set()), ({'components': [{'sides': {'productTracks': []}}]}, set()), ({'components': [{'sides': [{'productTracks': [{ 'track': { 'isrc': '12345' } } ]}]}]}, {'12345'}) ]) def test_get_isrcs(test_input, expected): """Test get isrcs with different sets of data.""" assert get_isrcs(test_input) == expected @pytest.mark.parametrize('test_input,expected', [ (None, {}), ({}, {}), ([], {}), ({'components': None}, {}), ({'components': []}, {}), ({'components': [{'sides': None}]}, {}), ({'components': [{'sides': {'productTracks': []}}]}, {}), ({'components': [{'sides': [{'productTracks': [{ 'sequenceNumber': 2, 'track': { 'isrc': '12345', } } ]}]}]}, {}), ({'components': [{'sides': [{'productTracks': [{ 'componentNumber': 1, 'sequenceNumber': 2, 'track': { 'isrc': '12345', } } ]}]}]}, { '12345': (1, 2) }) ]) def test_get_track_arrangement(test_input, expected): """Test get track arrangement.""" assert get_track_arrangement(test_input) == expected