import pytest from fansifter_common.auth.account import Account from starlette.testclient import TestClient from dmp.crm_campaigns.models import CrmCampaignDbt from tests.unit.equals import IsISODatetime from tests.unit.faker import FakerTyped from tests.unit.types import CreateReportingModel @pytest.mark.db def test_get_crm_campaign_id_with_global_participant_id_filter( client: TestClient, create_reporting_model: CreateReportingModel, fake: FakerTyped, account: Account, ) -> None: global_participant_id = fake.uuid4_string() crm_campaign_id = create_reporting_model( CrmCampaignDbt, vendor_id=account.vendor_id, subaccount_id=account.subaccount_id, global_participant_id=global_participant_id, custom_list_id=None, ) response = client.get( "/crm-campaigns/", params={ "vendorId": account.vendor_id, "subaccountId": account.subaccount_id, "globalParticipantId": global_participant_id, }, ) assert response.status_code == 200 assert response.json() == { "items": [ { "id": crm_campaign_id.id, "name": crm_campaign_id.name, "fanDataListId": {"id": global_participant_id, "type": "ARTIST"}, "acquisitionChannel": crm_campaign_id.acquisition_channel.value, "createdAt": IsISODatetime(crm_campaign_id.created_at), "url": crm_campaign_id.url, } ] } @pytest.mark.db def test_get_presave_page_with_global_participant_ids_filter( client: TestClient, create_reporting_model: CreateReportingModel, fake: FakerTyped, account: Account, ) -> None: global_participant_id = fake.uuid4_string() crm_campaign_id = create_reporting_model( CrmCampaignDbt, vendor_id=account.vendor_id, subaccount_id=account.subaccount_id, global_participant_id=global_participant_id, custom_list_id=None, ) response = client.get( "/crm-campaigns/", params={ "vendorId": account.vendor_id, "subaccountId": account.subaccount_id, "globalParticipantIds": [global_participant_id], }, ) assert response.status_code == 200 assert response.json() == { "items": [ { "id": crm_campaign_id.id, "name": crm_campaign_id.name, "fanDataListId": {"id": global_participant_id, "type": "ARTIST"}, "createdAt": IsISODatetime(crm_campaign_id.created_at), "acquisitionChannel": crm_campaign_id.acquisition_channel.value, "url": crm_campaign_id.url, } ] }