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

Skip to content

Commit 8fe60eb

Browse files
author
renzon
committed
Alterado código de produção
1 parent 97b1214 commit 8fe60eb

File tree

5 files changed

+39
-6
lines changed

5 files changed

+39
-6
lines changed

libpythonpro/spam/enviador_de_email.py

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

711

libpythonpro/spam/main.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,10 @@ def __init__(self, sessao, enviador):
44
self.enviador = enviador
55

66
def enviar_emails(self, remetente, assunto, corpo):
7-
pass
7+
for usuario in self.sessao.listar():
8+
self.enviador.enviar(
9+
remetente,
10+
usuario.email,
11+
assunto,
12+
corpo
13+
)

libpythonpro/spam/modelos.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
class Usuario:
2-
def __init__(self, nome):
2+
def __init__(self, nome, email):
3+
self.email = email
34
self.nome = nome
45
self.id = None
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
1+
import pytest
2+
13
from libpythonpro.spam.enviador_de_email import Enviador
24
from libpythonpro.spam.main import EnviadorDeSpam
5+
from libpythonpro.spam.modelos import Usuario
36

47

5-
def test_envio_de_spam(sessao):
6-
enviador_de_spam = EnviadorDeSpam(sessao, Enviador())
8+
@pytest.mark.parametrize(
9+
'usuarios',
10+
[
11+
[
12+
Usuario(nome='Renzo', email='[email protected]'),
13+
Usuario(nome='Luciano', email='[email protected]')
14+
],
15+
[
16+
Usuario(nome='Renzo', email='[email protected]')
17+
]
18+
]
19+
)
20+
def test_qde_de_spam(sessao, usuarios):
21+
for usuario in usuarios:
22+
sessao.salvar(usuario)
23+
enviador = Enviador()
24+
enviador_de_spam = EnviadorDeSpam(sessao, enviador)
725
enviador_de_spam.enviar_emails(
826
927
'Curso Python Pro',
1028
'Confira os módulos fantásticos'
1129
)
30+
assert len(usuarios) == enviador.qtd_email_enviados

libpythonpro/tests/test_spam/test_usuarios.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33

44
def test_salvar_usuario(sessao):
5-
usuario = Usuario(nome='Renzo')
5+
usuario = Usuario(nome='Renzo', email='[email protected]')
66
sessao.salvar(usuario)
77
assert isinstance(usuario.id, int)
88

99

1010
def test_listar_usuarios(sessao):
11-
usuarios = [Usuario(nome='Renzo'), Usuario(nome='Luciano')]
11+
usuarios = [
12+
Usuario(nome='Renzo', email='[email protected]'),
13+
Usuario(nome='Luciano', email='[email protected]')
14+
]
1215
for usuario in usuarios:
1316
sessao.salvar(usuario)
1417
assert usuarios == sessao.listar()

0 commit comments

Comments
 (0)