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

1"""Module for testing smtp mailer.""" 

2 

3from typing import Iterator 

4 

5import pytest 

6 

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 

12 

13 

14pytestmark = pytest.mark.mail 

15 

16 

17@pytest.fixture 

18def smtp_mailer() -> Iterator[Mailer]: 

19 """Fixture for getting a mailer.""" 

20 from kwai_core.mail.smtp_mailer import SmtpMailer 

21 

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() 

33 

34 

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)