"""Tests for track module.""" from masters_registry.models import track from masters_registry.models.sql import track as track_sql def test_get_tuid_by_isrc_and_vendor_id(mock_mr_session_scope): """Expect to get tuid of ISRC for given vendor_id.""" test_vendor_id = 123 test_isrcs = ['QA123', 'QA234'] sql_return_value = [(12345, 'QA123'), (23456, 'QA234')] session_execute_mock = mock_mr_session_scope(sql_return_value) result = track.get_tuid_isrc_for_vendor_id(test_isrcs, test_vendor_id) session_execute_mock.assert_called_once_with( track_sql.SELECT_TUID_BY_ISRC_AND_VENDOR_ID, {'vendor_id': test_vendor_id, 'isrc_list': test_isrcs}) expected = {'QA123': [12345], 'QA234': [23456]} assert result == expected def test_get_tuid_by_isrc_and_vendor_id_multiple_tuids(mock_mr_session_scope): """Expect to get multiple tuids of ISRC for given vendor_id. There can be case when single ISRC corresponds to multiple tuids of same vendor, which means that it is same track on different albums. """ test_vendor_id = 123 test_isrcs = ['QA123', 'QA234'] sql_return_value = [(12345, 'QA123'), (23456, 'QA234'), (34567, 'QA123')] session_execute_mock = mock_mr_session_scope(sql_return_value) result = track.get_tuid_isrc_for_vendor_id(test_isrcs, test_vendor_id) session_execute_mock.assert_called_once_with( track_sql.SELECT_TUID_BY_ISRC_AND_VENDOR_ID, {'vendor_id': test_vendor_id, 'isrc_list': test_isrcs}) expected = {'QA123': [12345, 34567], 'QA234': [23456]} assert result == expected def test_get_tuid_isrc_for_subaccount_id(mock_mr_session_scope): """Expect to get map of isrc to corresponding tuids.""" test_subaccount_id = 123 test_isrcs = ['QA123', 'QA234'] sql_return_value = [(12345, 'QA123'), (23456, 'QA234'), (34567, 'QA123')] session_execute_mock = mock_mr_session_scope(sql_return_value) result = track.get_tuid_isrc_for_subaccount_id( test_isrcs, test_subaccount_id) session_execute_mock.assert_called_once_with( track_sql.SELECT_TUID_BY_ISRC_AND_SUBACCOUNT_ID, {'subaccount_id': test_subaccount_id, 'isrc_list': test_isrcs}) expected = {'QA123': [12345, 34567], 'QA234': [23456]} assert result == expected