import pytest from email_campaigns.campaigns.enums import EmailCampaignStatus from email_campaigns.campaigns.exceptions import EmailCampaignMustBeDraftError from email_campaigns.campaigns.handlers import ( DeleteCampaignHandler, DeleteCampaignRequest, ) from email_campaigns.campaigns.models import EmailCampaign from tests.unit.types import CreateModel class TestDeleteCampaignHandler: @pytest.mark.db def test_delete_email_campaign( self, handler: DeleteCampaignHandler, create_model: CreateModel, identity_id: str, ) -> None: campaign = create_model( EmailCampaign, status=EmailCampaignStatus.DRAFT, ) handler.handle( DeleteCampaignRequest( identity_id=identity_id, campaign_id=campaign.id, ) ) assert True @pytest.mark.db def test_delete_campaign_must_be_draft( self, handler: DeleteCampaignHandler, create_model: CreateModel, identity_id: str, ) -> None: campaign = create_model( EmailCampaign, status=EmailCampaignStatus.SENT, ) with pytest.raises(EmailCampaignMustBeDraftError): handler.handle( DeleteCampaignRequest( identity_id=identity_id, campaign_id=campaign.id, ) )