import pytest from dmp.audiences.enums import AudienceExportStatus from dmp.audiences.exceptions import AudienceExportNotFoundError from dmp.audiences.handlers import ( UpdateAudienceExportHandler, UpdateAudienceExportRequest, ) from dmp.audiences.models import AudienceExport from tests.unit.faker import FakerTyped from tests.unit.types import CreateModel class TestUpdateAudienceExportHandler: @pytest.mark.db def test_update_audience_export_not_completed( self, handler: UpdateAudienceExportHandler, create_model: CreateModel ) -> None: export = create_model( AudienceExport, status=AudienceExportStatus.PENDING, zip_key=None, ) status = AudienceExportStatus.PROCESSING zip_key = "test" result = handler.handle( UpdateAudienceExportRequest( export_id=export.id, status=status, zip_key=zip_key, ) ) assert result.status == status assert result.zip_key == zip_key @pytest.mark.db def test_update_audience_export_not_found( self, handler: UpdateAudienceExportHandler, fake: FakerTyped ) -> None: with pytest.raises(AudienceExportNotFoundError): handler.handle( UpdateAudienceExportRequest( export_id=fake.uuid4_string(), status=AudienceExportStatus.PROCESSING, zip_key=None, ) )