Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a328bab

Browse files
author
renzon
committed
Implementado Mock manual para Enviador
1 parent 8fe60eb commit a328bab

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

libpythonpro/spam/enviador_de_email.py

-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
class Enviador:
2-
def __init__(self):
3-
self.qtd_email_enviados = 0
4-
52
def enviar(self, remetente, destinatario, assunto, corpo):
63
if '@' not in remetente:
74
raise EmailInvalido(f'Email de remetente inválido: {remetente}')
8-
self.qtd_email_enviados += 1
95
return remetente
106

117

libpythonpro/tests/test_spam/test_envio_para_base_de_usuarios.py

+30-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@
55
from libpythonpro.spam.modelos import Usuario
66

77

8+
class EnviadorMock(Enviador):
9+
def __init__(self):
10+
super().__init__()
11+
self.qtd_email_enviados = 0
12+
self.parametros_de_envio = None
13+
14+
def enviar(self, remetente, destinatario, assunto, corpo):
15+
self.parametros_de_envio = (remetente, destinatario, assunto, corpo)
16+
self.qtd_email_enviados += 1
17+
18+
819
@pytest.mark.parametrize(
920
'usuarios',
1021
[
@@ -20,11 +31,29 @@
2031
def test_qde_de_spam(sessao, usuarios):
2132
for usuario in usuarios:
2233
sessao.salvar(usuario)
23-
enviador = Enviador()
34+
enviador = EnviadorMock()
2435
enviador_de_spam = EnviadorDeSpam(sessao, enviador)
2536
enviador_de_spam.enviar_emails(
2637
2738
'Curso Python Pro',
2839
'Confira os módulos fantásticos'
2940
)
3041
assert len(usuarios) == enviador.qtd_email_enviados
42+
43+
44+
def test_parametros_de_spam(sessao):
45+
usuario = Usuario(nome='Renzo', email='[email protected]')
46+
sessao.salvar(usuario)
47+
enviador = EnviadorMock()
48+
enviador_de_spam = EnviadorDeSpam(sessao, enviador)
49+
enviador_de_spam.enviar_emails(
50+
51+
'Curso Python Pro',
52+
'Confira os módulos fantásticos'
53+
)
54+
assert enviador.parametros_de_envio == (
55+
56+
57+
'Curso Python Pro',
58+
'Confira os módulos fantásticos'
59+
)

0 commit comments

Comments
 (0)