import pytest from email_campaigns.automated.exceptions import AutomatedEmailHasTriggerError from email_campaigns.automated.handlers import ( DeleteAutomatedEmailHandler, DeleteAutomatedEmailRequest, ) from email_campaigns.automated.models import ( AutomatedEmail, AutomatedEmailTrigger, SourceCampaign, ) from tests.unit.types import CreateModel class TestDeleteAutomatedEmailHandler: @pytest.mark.db def test_delete_automated_email( self, handler: DeleteAutomatedEmailHandler, create_model: CreateModel, identity_id: str, ) -> None: automated_email = create_model(AutomatedEmail) handler.handle( DeleteAutomatedEmailRequest( identity_id=identity_id, email_id=automated_email.id, ) ) assert True @pytest.mark.db def test_delete_automated_email_must_have_no_triggers( self, handler: DeleteAutomatedEmailHandler, create_model: CreateModel, identity_id: str, ) -> None: source_campaign = create_model(SourceCampaign) automated_email = create_model( AutomatedEmail, source_campaign_connections=[ AutomatedEmailTrigger(source_campaign_id=source_campaign.id) ], ) with pytest.raises(AutomatedEmailHasTriggerError): handler.handle( DeleteAutomatedEmailRequest( identity_id=identity_id, email_id=automated_email.id, ) )