"""DimTrack model tests.""" from moneyhub.models import DimTrack from tests.unit.conftest import using_mock_snowflake_table _MOCK_DATA = { 'dim_track': [ { 'trackid': 1, 'track_unique_id': 41497259, 'trackname': 'Song Alpha', 'isrc': 'JPYE70900611', }, { 'trackid': 2, 'track_unique_id': 99999999, 'trackname': 'Song Beta', 'isrc': 'fake99999999', }, { 'trackid': 3, 'track_unique_id': 55555555, 'trackname': None, 'isrc': None, }, ], } @using_mock_snowflake_table(DimTrack, _MOCK_DATA) def test_get_recording_names_by_ids(): """Test getting recording names by IDs.""" result = DimTrack.get_recording_names_by_ids(['41497259', '99999999']) assert len(result) == 2 result_sorted = sorted(result, key=lambda r: r.recording_id) assert result_sorted[0]._asdict() == { 'recording_id': '41497259', 'recording_title': 'Song Alpha', 'isrc': 'JPYE70900611'} assert result_sorted[1]._asdict() == { 'recording_id': '99999999', 'recording_title': 'Song Beta', 'isrc': 'fake99999999'} @using_mock_snowflake_table(DimTrack, _MOCK_DATA) def test_get_recording_names_by_ids_single(): """Test getting a single recording name.""" result = DimTrack.get_recording_names_by_ids(['41497259']) assert len(result) == 1 assert result[0].recording_id == '41497259' assert result[0].recording_title == 'Song Alpha' assert result[0].isrc == 'JPYE70900611'