import pytest from fansifter_common.auth.account import Account from starlette.testclient import TestClient from dmp.crm_sublists.models import CrmSublistDbt from tests.unit.faker import FakerTyped from tests.unit.types import CreateReportingModel @pytest.mark.db def test_get_crm_sublist_id_with_global_participant_id_filter( client: TestClient, create_reporting_model: CreateReportingModel, fake: FakerTyped, account: Account, ) -> None: global_participant_id = fake.uuid4_string() crm_sublist_id = create_reporting_model( CrmSublistDbt, vendor_id=account.vendor_id, subaccount_id=account.subaccount_id, global_participant_id=global_participant_id, custom_list_id=None, ) response = client.get( "/crm-sublists/", params={ "vendorId": account.vendor_id, "subaccountId": account.subaccount_id, "globalParticipantIds": [global_participant_id], }, ) assert response.status_code == 200 assert response.json() == { "items": [ { "id": crm_sublist_id.id, "name": crm_sublist_id.name, "fanDataListId": {"id": global_participant_id, "type": "ARTIST"}, "territoryName": crm_sublist_id.territory_name, "labelName": crm_sublist_id.label_name, } ] } @pytest.mark.db def test_get_crm_sublist_id_with_custom_list_id_filter( client: TestClient, create_reporting_model: CreateReportingModel, fake: FakerTyped, account: Account, ) -> None: custom_list_id = fake.uuid4_string() crm_sublist_id = create_reporting_model( CrmSublistDbt, vendor_id=account.vendor_id, subaccount_id=account.subaccount_id, global_participant_id=None, custom_list_id=custom_list_id, ) response = client.get( "/crm-sublists/", params={ "vendorId": account.vendor_id, "subaccountId": account.subaccount_id, "customListIds": [custom_list_id], }, ) assert response.status_code == 200 assert response.json() == { "items": [ { "id": crm_sublist_id.id, "name": crm_sublist_id.name, "fanDataListId": {"id": custom_list_id, "type": "CUSTOM_LIST"}, "territoryName": crm_sublist_id.territory_name, "labelName": crm_sublist_id.label_name, } ] }