"""Test for the Chart Handler.""" from unittest.mock import patch import pytest import datetime import uuid from charts.connectors import snowflake from charts.logic.dataloaders.charts import dates_dataloader admin_permissions = { 'artist_ids': ['*'], 'vendor_ids': ['*'], 'subaccount_ids': ['*'], 'label_participant_ids': ['*'], } def test_get_chart_dates_for_chart_ids() -> None: """Test _get_chart_dates_for_chart_ids.""" fetchall_mock_response = [ [ '9745468d-9dbd-40a7-af10-3a0066fd808b', "2024-01-01,2024-01-02" ], [ 'de95bb84-4616-4b4f-b0e5-bd5e20488232', None ], [ None, None ], ] with patch.object(snowflake, 'fetchall_nocache', return_value=fetchall_mock_response): response = dates_dataloader._get_chart_dates_for_chart_ids([ {"chart_id": uuid.UUID("9745468d-9dbd-40a7-af10-3a0066fd808b")}, {"chart_id": uuid.UUID("de95bb84-4616-4b4f-b0e5-bd5e20488232")}, {"chart_id": uuid.UUID("6cbd0b41-564d-486d-b0fd-8142b8dc678d")}, ]) assert response == [ { "data": { "chartId": "9745468d-9dbd-40a7-af10-3a0066fd808b", "chartDates": [ datetime.date.fromisoformat("2024-01-01"), datetime.date.fromisoformat("2024-01-02"), ] }, }, { "data": { "chartId": "de95bb84-4616-4b4f-b0e5-bd5e20488232", "chartDates": [] }, }, { "data": None, }, ] def test_key_serializer() -> None: """Test _key_serializer.""" result = dates_dataloader._key_serializer({ 'chart_id': uuid.UUID('d1dd4ca2-4815-4b0b-97dc-060a0a1441ea') }) assert result == 'chart:d1dd4ca2-4815-4b0b-97dc-060a0a1441ea:dates'