API - add typing
This commit is contained in:
@ -1,13 +1,15 @@
|
||||
from unittest.mock import patch
|
||||
from typing import Any
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from fittrackee import email_service
|
||||
from fittrackee.email.email import EmailMessage
|
||||
from flask import Flask
|
||||
|
||||
from ..template_results.password_reset_request import expected_en_text_body
|
||||
|
||||
|
||||
class TestEmailMessage:
|
||||
def test_it_generate_email_data(self):
|
||||
def test_it_generate_email_data(self) -> None:
|
||||
message = EmailMessage(
|
||||
sender='fittrackee@example.com',
|
||||
recipient='test@test.com',
|
||||
@ -40,14 +42,14 @@ class TestEmailSending:
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def get_args(call_args):
|
||||
def get_args(call_args: Any) -> Any:
|
||||
if len(call_args) == 2:
|
||||
args, _ = call_args
|
||||
else:
|
||||
_, args, _ = call_args
|
||||
return args
|
||||
|
||||
def assert_smtp(self, smtp):
|
||||
def assert_smtp(self, smtp: Mock) -> None:
|
||||
assert smtp.sendmail.call_count == 1
|
||||
call_args = self.get_args(smtp.sendmail.call_args)
|
||||
assert call_args[0] == 'fittrackee@example.com'
|
||||
@ -56,7 +58,9 @@ class TestEmailSending:
|
||||
|
||||
@patch('smtplib.SMTP_SSL')
|
||||
@patch('smtplib.SMTP')
|
||||
def test_it_sends_message(self, mock_smtp, mock_smtp_ssl, app):
|
||||
def test_it_sends_message(
|
||||
self, mock_smtp: Mock, mock_smtp_ssl: Mock, app: Flask
|
||||
) -> None:
|
||||
|
||||
email_service.send(
|
||||
template='password_reset_request',
|
||||
@ -72,8 +76,8 @@ class TestEmailSending:
|
||||
@patch('smtplib.SMTP_SSL')
|
||||
@patch('smtplib.SMTP')
|
||||
def test_it_sends_message_with_ssl(
|
||||
self, mock_smtp, mock_smtp_ssl, app_ssl
|
||||
):
|
||||
self, mock_smtp: Mock, mock_smtp_ssl: Mock, app_ssl: Flask
|
||||
) -> None:
|
||||
email_service.send(
|
||||
template='password_reset_request',
|
||||
lang='en',
|
||||
@ -88,8 +92,8 @@ class TestEmailSending:
|
||||
@patch('smtplib.SMTP_SSL')
|
||||
@patch('smtplib.SMTP')
|
||||
def test_it_sends_message_with_tls(
|
||||
self, mock_smtp, mock_smtp_ssl, app_tls
|
||||
):
|
||||
self, mock_smtp: Mock, mock_smtp_ssl: Mock, app_tls: Flask
|
||||
) -> None:
|
||||
email_service.send(
|
||||
template='password_reset_request',
|
||||
lang='en',
|
||||
|
@ -1,5 +1,6 @@
|
||||
import pytest
|
||||
from fittrackee.email.email import EmailTemplate
|
||||
from flask import Flask
|
||||
|
||||
from ..template_results.password_reset_request import (
|
||||
expected_en_html_body,
|
||||
@ -17,8 +18,10 @@ class TestEmailTemplateForPasswordRequest:
|
||||
('fr', 'FitTrackee - Réinitialiser votre mot de passe'),
|
||||
],
|
||||
)
|
||||
def test_it_gets_subject(self, app, lang, expected_subject):
|
||||
email_template = EmailTemplate(app.config.get('TEMPLATES_FOLDER'))
|
||||
def test_it_gets_subject(
|
||||
self, app: Flask, lang: str, expected_subject: str
|
||||
) -> None:
|
||||
email_template = EmailTemplate(app.config['TEMPLATES_FOLDER'])
|
||||
|
||||
subject = email_template.get_content(
|
||||
'password_reset_request', lang, 'subject.txt', {}
|
||||
@ -30,8 +33,10 @@ class TestEmailTemplateForPasswordRequest:
|
||||
'lang, expected_text_body',
|
||||
[('en', expected_en_text_body), ('fr', expected_fr_text_body)],
|
||||
)
|
||||
def test_it_gets_text_body(self, app, lang, expected_text_body):
|
||||
email_template = EmailTemplate(app.config.get('TEMPLATES_FOLDER'))
|
||||
def test_it_gets_text_body(
|
||||
self, app: Flask, lang: str, expected_text_body: str
|
||||
) -> None:
|
||||
email_template = EmailTemplate(app.config['TEMPLATES_FOLDER'])
|
||||
email_data = {
|
||||
'expiration_delay': '3 seconds' if lang == 'en' else '3 secondes',
|
||||
'username': 'test',
|
||||
@ -46,8 +51,8 @@ class TestEmailTemplateForPasswordRequest:
|
||||
|
||||
assert text_body == expected_text_body
|
||||
|
||||
def test_it_gets_en_html_body(self, app):
|
||||
email_template = EmailTemplate(app.config.get('TEMPLATES_FOLDER'))
|
||||
def test_it_gets_en_html_body(self, app: Flask) -> None:
|
||||
email_template = EmailTemplate(app.config['TEMPLATES_FOLDER'])
|
||||
email_data = {
|
||||
'expiration_delay': '3 seconds',
|
||||
'username': 'test',
|
||||
@ -62,8 +67,8 @@ class TestEmailTemplateForPasswordRequest:
|
||||
|
||||
assert expected_en_html_body in text_body
|
||||
|
||||
def test_it_gets_fr_html_body(self, app):
|
||||
email_template = EmailTemplate(app.config.get('TEMPLATES_FOLDER'))
|
||||
def test_it_gets_fr_html_body(self, app: Flask) -> None:
|
||||
email_template = EmailTemplate(app.config['TEMPLATES_FOLDER'])
|
||||
email_data = {
|
||||
'expiration_delay': '3 secondes',
|
||||
'username': 'test',
|
||||
|
@ -3,12 +3,12 @@ from fittrackee.email.utils_email import InvalidEmailUrlScheme, parse_email_url
|
||||
|
||||
|
||||
class TestEmailUrlParser:
|
||||
def test_it_raises_error_if_url_scheme_is_invalid(self):
|
||||
def test_it_raises_error_if_url_scheme_is_invalid(self) -> None:
|
||||
url = 'stmp://username:password@localhost:587'
|
||||
with pytest.raises(InvalidEmailUrlScheme):
|
||||
parse_email_url(url)
|
||||
|
||||
def test_it_parses_email_url(self):
|
||||
def test_it_parses_email_url(self) -> None:
|
||||
url = 'smtp://test@example.com:12345678@localhost:25'
|
||||
parsed_email = parse_email_url(url)
|
||||
assert parsed_email['username'] == 'test@example.com'
|
||||
@ -18,7 +18,7 @@ class TestEmailUrlParser:
|
||||
assert parsed_email['use_tls'] is False
|
||||
assert parsed_email['use_ssl'] is False
|
||||
|
||||
def test_it_parses_email_url_with_tls(self):
|
||||
def test_it_parses_email_url_with_tls(self) -> None:
|
||||
url = 'smtp://test@example.com:12345678@localhost:587?tls=True'
|
||||
parsed_email = parse_email_url(url)
|
||||
assert parsed_email['username'] == 'test@example.com'
|
||||
@ -28,7 +28,7 @@ class TestEmailUrlParser:
|
||||
assert parsed_email['use_tls'] is True
|
||||
assert parsed_email['use_ssl'] is False
|
||||
|
||||
def test_it_parses_email_url_with_ssl(self):
|
||||
def test_it_parses_email_url_with_ssl(self) -> None:
|
||||
url = 'smtp://test@example.com:12345678@localhost:465?ssl=True'
|
||||
parsed_email = parse_email_url(url)
|
||||
assert parsed_email['username'] == 'test@example.com'
|
||||
|
Reference in New Issue
Block a user