Coverage for src/tests/core/mail/test_smtp_mailer.py: 95%
22 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for testing smtp mailer."""
3from typing import Iterator
5import pytest
7from kwai_core.domain.value_objects.email_address import EmailAddress
8from kwai_core.mail.mail import Mail
9from kwai_core.mail.mailer import Mailer
10from kwai_core.mail.recipient import Recipient, Recipients
11from kwai_core.settings import get_settings
14pytestmark = pytest.mark.mail
17@pytest.fixture
18def smtp_mailer() -> Iterator[Mailer]:
19 """Fixture for getting a mailer."""
20 from kwai_core.mail.smtp_mailer import SmtpMailer
22 settings = get_settings()
23 smtp_mailer = SmtpMailer(
24 host=settings.email.host, port=settings.email.port, tls=settings.email.tls
25 )
26 try:
27 smtp_mailer.connect()
28 if settings.email.user:
29 smtp_mailer.login(settings.email.user, settings.email.password)
30 yield smtp_mailer
31 finally:
32 smtp_mailer.disconnect()
35def test_text_message(smtp_mailer: Mailer):
36 """Test sending a text message."""
37 mail = Mail(
38 subject="test_text_message",
39 recipients=Recipients(
40 from_=Recipient(email=EmailAddress("webmaster@kwai.com"), name="Webmaster"),
41 to=[
42 Recipient(
43 email=EmailAddress("jigoro.kano@kwai.com"), name="Jigoro Kano"
44 )
45 ],
46 ),
47 text="Hell world",
48 html="<b>Hello World</b>",
49 )
50 smtp_mailer.send(mail)