import pytest from dirty_equals import IsList from dmp.ad_reporting.enums import AdReportingPlatform from dmp.ad_reporting.handlers import ( GetAdReportingReportsArtistsHandler, GetAdReportingReportsArtistsRequest, ) from dmp.ad_reporting.models import AdReportingCampaignDbt, AdReportingReport from tests.unit.faker import FakerTyped from tests.unit.types import CreateReportingModel class TestGetAdReportingReportsArtistsHandler: @pytest.mark.db def test_get_allowed_reports_artists( self, handler: GetAdReportingReportsArtistsHandler, create_reporting_model: CreateReportingModel, identity_id: str, fake: FakerTyped, ) -> None: global_participant_id_1 = fake.uuid4_string() global_participant_id_2 = fake.uuid4_string() campaign_1 = create_reporting_model( AdReportingCampaignDbt, platform=AdReportingPlatform.META, _global_participant_ids=[global_participant_id_1], ) campaign_2 = create_reporting_model( AdReportingCampaignDbt, platform=AdReportingPlatform.META, global_participant_id=global_participant_id_2, ) create_reporting_model( AdReportingReport, identity_id=identity_id, campaign_ids={campaign_1.id} ) create_reporting_model( AdReportingReport, identity_id=identity_id, campaign_ids={campaign_2.id} ) result = handler.handle( GetAdReportingReportsArtistsRequest( identity_id=identity_id, report_id=None, ) ) assert result == IsList( global_participant_id_1, global_participant_id_2, check_order=False, )