from audience_common.auth.account import Account from campaigns.meta.models import FacebookPage, FacebookPageLabel from campaigns.meta.repositories import FacebookPageLabelRepository from tests.unit.faker import FakerTyped from tests.unit.types import CreateModel async def test_find_by_page_ids_and_label_id_empty( facebook_page_label_repository: FacebookPageLabelRepository, fake: FakerTyped ) -> None: page_labels = await facebook_page_label_repository.find_by_page_ids_and_account( page_ids=[fake.uuid4_string()], account=Account(vendor_id=fake.integer(), subaccount_id=0), ) assert not page_labels async def test_find_by_page_ids_and_label_id( facebook_page_label_repository: FacebookPageLabelRepository, create_model: CreateModel, ) -> None: facebook_page = await create_model(FacebookPage) vendor_id = 100 page_label = await create_model( FacebookPageLabel, page=facebook_page, vendor_id=vendor_id, subaccount_id=0 ) result = await facebook_page_label_repository.find_by_page_ids_and_account( page_ids=[facebook_page.id], account=Account(vendor_id=vendor_id, subaccount_id=0), ) assert result == [page_label] async def test_find_by_page_ids_and_label_id_with_subaccount_id( facebook_page_label_repository: FacebookPageLabelRepository, create_model: CreateModel, ) -> None: page = await create_model(FacebookPage) vendor_id = 100 subaccount_id = 1000 await create_model( FacebookPageLabel, page=page, vendor_id=vendor_id, subaccount_id=0 ) page_label = await create_model( FacebookPageLabel, page=page, vendor_id=vendor_id, subaccount_id=subaccount_id, ) result = await facebook_page_label_repository.find_by_page_ids_and_account( page_ids=[page.id], account=Account(vendor_id=vendor_id, subaccount_id=subaccount_id), ) assert result == [page_label]