from typing import get_args import pytest from dmp.ad_reporting.dtos import AdReportingReportCriteria from dmp.ad_reporting.enums import AdReportingPlatform from dmp.ad_reporting.models import AdReportingReport from dmp.ad_reporting.repositories import AdReportingReportRepository from dmp.ad_reporting.types import AdReportingReportOrderBy from tests.unit.types import CreateReportingModel class TestAdReportingReportRepository: @pytest.mark.db def test_count_by_criteria( self, repository: AdReportingReportRepository, identity_id: str ) -> None: total = repository.count_by_criteria( AdReportingReportCriteria( identity_id=identity_id, search="test", platform=AdReportingPlatform.META, global_participant_id="test", ), ) assert total == 0 @pytest.mark.db def test_find_by_criteria( self, repository: AdReportingReportRepository, identity_id: str ) -> None: reports = repository.find_by_criteria( AdReportingReportCriteria( identity_id=identity_id, search="test", platform=AdReportingPlatform.META, global_participant_id="test", ), limit=10, offset=5, ) assert reports == [] @pytest.mark.db @pytest.mark.parametrize("order_by", get_args(AdReportingReportOrderBy)) def test_find_by_criteria_supported_order_by_columns( self, repository: AdReportingReportRepository, identity_id: str, order_by: AdReportingReportOrderBy, ) -> None: reports = repository.find_by_criteria( AdReportingReportCriteria(identity_id=identity_id), order_by=[order_by], ) assert reports == [] @pytest.mark.db def test_exists_by_name_and_identity_id_same_name( self, repository: AdReportingReportRepository, create_reporting_model: CreateReportingModel, identity_id: str, ) -> None: name = "Test Report" create_reporting_model(AdReportingReport, name=name, identity_id=identity_id) result = repository.exists_by_name_and_identity_id( name=" test report ", identity_id=identity_id ) assert result @pytest.mark.db def test_exists_by_name_and_identity_id_not_exist( self, repository: AdReportingReportRepository ) -> None: result = repository.exists_by_name_and_identity_id( name="Test Report", identity_id="test_identity_id" ) assert result is False