import pytest from dmp.crm_sublists.models import CrmSublistDbt from dmp.crm_sublists.repositories import CrmSublistRepository from tests.unit.faker import FakerTyped from tests.unit.types import CreateReportingModel class TestCrmSublistIDRepository: @pytest.mark.db def test_get_by_vendor_id_subaccount_id_global_participant_id( self, repository: CrmSublistRepository, create_reporting_model: CreateReportingModel, fake: FakerTyped, ) -> None: global_participant_id = fake.uuid4_string() crm_sublist_id = create_reporting_model( CrmSublistDbt, global_participant_id=global_participant_id ) result = repository.get_crm_sublist_ids( vendor_ids=[crm_sublist_id.vendor_id], subaccount_ids=[crm_sublist_id.subaccount_id], global_participant_ids=[global_participant_id], custom_list_ids=[], sublist_ids=None, limit=50, ) assert len(result) == 1 assert result[0].id == crm_sublist_id.id @pytest.mark.db def test_get_by_vendor_id_subaccount_id_global_participant_id_for_vendor( self, repository: CrmSublistRepository, create_reporting_model: CreateReportingModel, fake: FakerTyped, ) -> None: vendor_id = 1000 subaccount_id = 2000 global_participant_id = fake.uuid4_string() crm_sublist_id = create_reporting_model( CrmSublistDbt, vendor_id=vendor_id, subaccount_id=subaccount_id, global_participant_id=global_participant_id, ) result = repository.get_crm_sublist_ids( vendor_ids=[crm_sublist_id.vendor_id], subaccount_ids=[crm_sublist_id.subaccount_id], global_participant_ids=[global_participant_id], custom_list_ids=[], sublist_ids=None, limit=50, search=None, ) assert len(result) == 1 assert result[0].id == crm_sublist_id.id @pytest.mark.db def test_get_by_vendor_id_subaccount_id_custom_list_id_for_vendor( self, repository: CrmSublistRepository, create_reporting_model: CreateReportingModel, fake: FakerTyped, ) -> None: vendor_id = 1000 subaccount_id = 2000 custom_list_id = fake.uuid4_string() crm_sublist_id = create_reporting_model( CrmSublistDbt, vendor_id=vendor_id, subaccount_id=subaccount_id, global_participant_id=None, custom_list_id=custom_list_id, ) result = repository.get_crm_sublist_ids( vendor_ids=[crm_sublist_id.vendor_id], subaccount_ids=[crm_sublist_id.subaccount_id], global_participant_ids=[], custom_list_ids=[custom_list_id], sublist_ids=None, limit=50, search=None, ) assert len(result) == 1 assert result[0].id == crm_sublist_id.id @pytest.mark.db def test_search_sublist_by_vendor_id_subaccount_id_custom_list_id_for_vendor( self, repository: CrmSublistRepository, create_reporting_model: CreateReportingModel, fake: FakerTyped, ) -> None: vendor_id = 1000 subaccount_id = 2000 custom_list_id = fake.uuid4_string() name = "My Happy Sublist" crm_sublist_id = create_reporting_model( CrmSublistDbt, vendor_id=vendor_id, subaccount_id=subaccount_id, global_participant_id=None, custom_list_id=custom_list_id, name=name, ) create_reporting_model( CrmSublistDbt, vendor_id=vendor_id, subaccount_id=subaccount_id, global_participant_id=None, custom_list_id=custom_list_id, name=fake.name(), ) create_reporting_model( CrmSublistDbt, vendor_id=vendor_id, subaccount_id=subaccount_id, global_participant_id=None, custom_list_id=custom_list_id, name=fake.name(), ) result = repository.get_crm_sublist_ids( vendor_ids=[crm_sublist_id.vendor_id], subaccount_ids=[crm_sublist_id.subaccount_id], global_participant_ids=[], custom_list_ids=[custom_list_id], sublist_ids=None, limit=50, search="happy", ) assert len(result) == 1 assert result[0].name == crm_sublist_id.name