import datetime from unittest.mock import patch import uuid from charts.connectors import snowflake from charts.logic.dataloaders.charts.dates.placements import public_dataloader def test_get_chart_rankings_dataloaded() -> None: """Test _get_chart_rankings_dataloaded.""" fetchall_mock_response = [ [ '13147630-de31-4cf8-8768-cc5959c26aa7', '9745468d-9dbd-40a7-af10-3a0066fd808b', datetime.date(2024, 4, 18), 4, 29, None, None, None, 13835830, None, 13835830, '5GSt99nxiJQ', None, 'cd8aa990-7343-4631-b003-580d01875a5c', None, None, '5GSt99nxiJQ', 'UCq-Fj5jknLsUf-MWSy4_brA', 'T-Series', "", ], ] with patch.object(snowflake, 'fetchall_nocache', return_value=fetchall_mock_response): response = public_dataloader._chart_placement_dataloader([ { "chart_id": uuid.UUID("9745468d-9dbd-40a7-af10-3a0066fd808b"), "chart_date": datetime.date.fromisoformat("2020-01-01"), "epoch": 0, "uuid": uuid.UUID("13147630-de31-4cf8-8768-cc5959c26aa7"), }, ]) assert response == [{ "data": { "uuid": "13147630-de31-4cf8-8768-cc5959c26aa7", "chartId": "9745468d-9dbd-40a7-af10-3a0066fd808b", "chartDate": datetime.date(2024, 4, 18), "position": 4, "positionChange": 29, "streams": None, "totalStreams": None, "totalShazams": None, "views": 13835830, "numTracks": None, "totalUnits": 13835830, "trackId": "5GSt99nxiJQ", "isrc": None, "publicSoundRecordingId": "cd8aa990-7343-4631-b003-580d01875a5c", "upc": None, "publicProductId": None, "videoId": "5GSt99nxiJQ", "channelId": "UCq-Fj5jknLsUf-MWSy4_brA", "channelName": "T-Series", "artistNames": "" } }] def test_key_serializer() -> None: "Test _key_serializer." result = public_dataloader._key_serializer({ "chart_id": uuid.UUID("9745468d-9dbd-40a7-af10-3a0066fd808b"), "chart_date": datetime.date.fromisoformat("2020-01-01"), "epoch": 0, "uuid": uuid.UUID("13147630-de31-4cf8-8768-cc5959c26aa7"), }) assert result == 'chart:9745468d-9dbd-40a7-af10-3a0066fd808b:date:2020-01-01:epoch:0:placement:13147630-de31-4cf8-8768-cc5959c26aa7:public'