"""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 chart_date_entry_dataloader admin_permissions = { 'artist_ids': ['*'], 'vendor_ids': ['*'], 'subaccount_ids': ['*'], 'label_participant_ids': ['*'], } def test_get_chart_date_entry_for_isrcs() -> None: """Test _get_chart_date_entry_for_isrcs.""" fetchall_mock_response = [ [ 1, True, ], [ None, True ], [ 2, True ], [ None, False ] ] with patch.object(snowflake, 'fetchall_nocache', return_value=fetchall_mock_response): response = chart_date_entry_dataloader._get_chart_date_entry_for_isrcs([ { "chart_id": uuid.UUID("9745468d-9dbd-40a7-af10-3a0066fd808b"), "chart_date": datetime.date(2024, 12, 12), "isrc": "isrc1" }, { "chart_id": uuid.UUID("de95bb84-4616-4b4f-b0e5-bd5e20488232"), "chart_date": datetime.date(2024, 12, 12), "isrc": "isrc2" }, { "chart_id": uuid.UUID("6cbd0b41-564d-486d-b0fd-8142b8dc678d"), "chart_date": datetime.date(2024, 12, 12), "isrc": "isrc3" }, { "chart_id": uuid.UUID("6cbd0b41-564d-486d-b0fd-8142b8dc678d"), "chart_date": datetime.date(2050, 12, 1), "isrc": "isrc3" }, ]) assert response == [ { "data": { "position": 1 }, }, { "data": { "position": None } }, { "data": { "position": 2 }, }, { "data": None }, ] def test_key_serializer() -> None: """Test _key_serializer.""" result = chart_date_entry_dataloader._key_serializer({ 'chart_id': uuid.UUID('d1dd4ca2-4815-4b0b-97dc-060a0a1441ea'), 'chart_date': datetime.date(2024, 12, 12), 'isrc': 'isrc2' }) assert result == 'chart:d1dd4ca2-4815-4b0b-97dc-060a0a1441ea:date:2024-12-12:isrc:isrc2'