"""Test for the Chart Handler.""" from unittest.mock import patch import uuid from charts.connectors import snowflake from charts.logic.dataloaders.charts import metadata_dataloader def test_get_chart_dates_for_chart_ids() -> None: """Test _get_chart_dates_for_chart_ids.""" fetchall_mock_response = [ [ '9745468d-9dbd-40a7-af10-3a0066fd808b', "Apple Music Daily Top 100", "appleMusic", "track", "MT", "default", "daily", "All Genres", "2024-05-15", "2021-02-15 11:35:40", "2024-05-16 05:49:52" ], [ None, None, None, None, None, None, None, None, None, None, None, ], ] with patch.object(snowflake, 'fetchall_nocache', return_value=fetchall_mock_response): response = metadata_dataloader._get_chart_metadata_for_chart_ids([ {"chart_id": uuid.UUID("9745468d-9dbd-40a7-af10-3a0066fd808b")}, {"chart_id": uuid.UUID("de95bb84-4616-4b4f-b0e5-bd5e20488232")}, ]) assert response == [ { "data": { "chartId": "9745468d-9dbd-40a7-af10-3a0066fd808b", "name": "Apple Music Daily Top 100", "platform": "appleMusic", "target": "track", "country": "MT", "type": "default", "frequency": "daily", "genre": "All Genres", "lastAvailableTimestamp": "2024-05-15", "createdAt": "2021-02-15 11:35:40", "modifiedAt": "2024-05-16 05:49:52" } }, { "data": None, }, ] def test_key_serializer() -> None: """Test _key_serializer.""" result = metadata_dataloader._key_serializer({ 'chart_id': uuid.UUID('d1dd4ca2-4815-4b0b-97dc-060a0a1441ea') }) assert result == 'chart:d1dd4ca2-4815-4b0b-97dc-060a0a1441ea:metadata'