"""Test product track preprocessing.""" import pytest from switchboard_consumer.logic.preprocessing.product import preprocess from switchboard_consumer.logic.preprocessing.track import \ preprocess_publishers, preprocess_track_cline, preprocess_track_pline from tests.logic.preprocessing.conftest import duplicate_publishers, \ expected_deduped_publishers, expected_no_duplicate_publishers, \ no_duplicate_publishers def test_preprocess_product(): """Test preprocess product.""" product = { 'cLine': { 'cLineText': '(c) 2019 Vangelis' }, 'pLine': { 'pLineText': '2019 Vangelis' }, 'productTracks': None } expected_product = { 'cLine': { 'cLineText': '2019 Vangelis' }, 'pLine': { 'pLineText': '2019 Vangelis' }, 'productTracks': None } processed_product = preprocess(product) assert processed_product == expected_product @pytest.mark.parametrize('cline,expected', [ ('(c) 2019 Vangelis', '2019 Vangelis'), ('', ''), ]) def test_preprocess_product_track_cline(cline, expected): """Test product track preprocessing.""" product_track = { 'cLine': { 'cLineText': cline } } preprocess_track_cline(product_track) assert product_track['cLine'] == expected @pytest.mark.parametrize('pline,expected', [ ('(p) 2019 Vangelis', '2019 Vangelis'), ('', ''), ]) def test_preprocess_product_track_pline(pline, expected): """Test product track pline preprocessing.""" product_track = { 'pLine': { 'pLineText': pline } } preprocess_track_pline(product_track) assert product_track['pLine'] == expected @pytest.mark.parametrize('publishers,expected', [ (no_duplicate_publishers, expected_no_duplicate_publishers), (duplicate_publishers, expected_deduped_publishers), ([], []), (None, None), ]) def test_preprocess_publishers(publishers, expected): """Test publisher preprocessing.""" processed_publishers = preprocess_publishers(publishers) assert processed_publishers == expected