1+ from unittest .mock import Mock
2+
13import pytest
24
35from libpythonpro .spam .enviador_de_email import Enviador
46from libpythonpro .spam .main import EnviadorDeSpam
57from libpythonpro .spam .modelos import Usuario
68
79
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-
1910@pytest .mark .parametrize (
2011 'usuarios' ,
2112 [
@@ -31,27 +22,27 @@ def enviar(self, remetente, destinatario, assunto, corpo):
3122def test_qde_de_spam (sessao , usuarios ):
3223 for usuario in usuarios :
3324 sessao .salvar (usuario )
34- enviador = EnviadorMock ()
25+ enviador = Mock ()
3526 enviador_de_spam = EnviadorDeSpam (sessao , enviador )
3627 enviador_de_spam .enviar_emails (
3728 'renzo@python.pro.br' ,
3829 'Curso Python Pro' ,
3930 'Confira os módulos fantásticos'
4031 )
41- assert len (usuarios ) == enviador .qtd_email_enviados
32+ assert len (usuarios ) == enviador .enviar . call_count
4233
4334
4435def test_parametros_de_spam (sessao ):
4536 usuario = Usuario (nome = 'Renzo' , email = 'renzo@python.pro.br' )
4637 sessao .salvar (usuario )
47- enviador = EnviadorMock ()
38+ enviador = Mock ()
4839 enviador_de_spam = EnviadorDeSpam (sessao , enviador )
4940 enviador_de_spam .enviar_emails (
5041 'luciano@python.pro.br' ,
5142 'Curso Python Pro' ,
5243 'Confira os módulos fantásticos'
5344 )
54- assert enviador .parametros_de_envio == (
45+ enviador .enviar . assert_called_once_with (
5546 'luciano@python.pro.br' ,
5647 'renzo@python.pro.br' ,
5748 'Curso Python Pro' ,
0 commit comments