app/tests/handler/test_trashed_alias.py
2025-11-03 14:30:24 +01:00

59 lines
1.9 KiB
Python

import random
import arrow
from aiosmtpd.smtp import Envelope
import email_handler
from app.email import status
from app.mail_sender import mail_sender
from app.models import Alias, BlockBehaviourEnum, Contact
from tests.utils import create_new_user, load_eml_file, random_email
@mail_sender.store_emails_test_decorator
def test_trash_on_forward():
user = create_new_user()
user.block_behaviour = BlockBehaviourEnum.return_5xx
alias = Alias.create_new_random(user)
alias.delete_on = arrow.utcnow().shift(days=1)
envelope = Envelope()
envelope.mail_from = "env.somewhere"
envelope.rcpt_tos = [alias.email]
original_sender_address = random_email()
msg = load_eml_file(
"replacement_on_forward_phase.eml",
{
"sender_address": original_sender_address,
"recipient_address": alias.email,
"cc_address": random_email(),
},
)
result = email_handler.MailHandler()._handle(envelope, msg)
assert result == status.E502
@mail_sender.store_emails_test_decorator
def test_trash_on_reply():
user = create_new_user()
user.block_behaviour = BlockBehaviourEnum.return_5xx
alias = Alias.create_new_random(user)
alias.delete_on = arrow.utcnow().shift(days=1)
contact = Contact.create(
user_id=alias.user.id,
alias_id=alias.id,
website_email=f"contact{random.random()}@mailbox.lan",
reply_email=f"re-{random.random()}@sl.lan",
flush=True,
)
envelope = Envelope()
envelope.mail_from = "env.somewhere"
envelope.rcpt_tos = [contact.reply_email]
msg = load_eml_file(
"replacement_on_reply_phase.eml",
{
"contact_reply_email": contact.reply_email,
"other_contact_reply_email": random_email(),
},
)
result = email_handler.MailHandler()._handle(envelope, msg)
assert result == status.E502