import pytest from fansifter_common.auth.account import Account from dmp.ad_reporting.enums import AdReportingPlatform from dmp.ad_reporting.handlers import ( AssignArtistsToAdReportingCampaignHandler, AssignArtistsToAdReportingCampaignRequest, ) from dmp.ad_reporting.models import AdReportingCampaignDbt from dmp.meta.models import MetaAdAccount, MetaUserAdAccount from tests.unit.faker import FakerTyped from tests.unit.types import CreateModel, CreateReportingModel class TestAssignArtistsToAdReportingCampaignHandler: @pytest.mark.db def test_assign_artist_to_campaign( self, handler: AssignArtistsToAdReportingCampaignHandler, create_model: CreateModel, create_reporting_model: CreateReportingModel, identity_id: str, account: Account, fake: FakerTyped, ) -> None: global_participant_id = fake.uuid4_string() ad_account = create_model(MetaAdAccount) create_model( MetaUserAdAccount, ad_account_id=ad_account.id, identity_id=identity_id, vendor_id=account.vendor_id, subaccount_id=account.subaccount_id, ) campaign = create_reporting_model( AdReportingCampaignDbt, account_id=ad_account.external_id, platform=AdReportingPlatform.META, ) handler.handle( AssignArtistsToAdReportingCampaignRequest( identity_id=identity_id, campaign_id=campaign.id, global_participant_ids={global_participant_id}, ) ) assert campaign.global_participant_ids == {global_participant_id}