Soy un novato en python y en el motor de aplicaciones.Pruebas unitarias y envío de correo electrónico burlón en Python con Google App Engine
Tengo este código que envía un correo electrónico basado en parámetros de solicitud después de cierta lógica de autenticación. en mis pruebas de unidad (estoy usando GAEUnit), ¿cómo confirmo que se envió un correo electrónico con contenido específico? - es decir, ¿cómo me burlo del e-mail con un correo electrónico falso para verificar que se haya llamado?
class EmailHandler(webapp.RequestHandler):
def bad_input(self):
self.response.set_status(400)
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write("<html><body>bad input </body></html>")
def get(self):
to_addr = self.request.get("to")
subj = self.request.get("subject")
msg = self.request.get("body")
if not mail.is_email_valid(to_addr):
# Return an error message...
# self.bad_input()
pass
# authenticate here
message = mail.EmailMessage()
message.sender = "[email protected]"
message.to = to_addr
message.subject = subj
message.body = msg
message.send()
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write("<html><body>success!</body></html>")
Y las pruebas unitarias,
import unittest
from webtest import TestApp
from google.appengine.ext import webapp
from email import EmailHandler
class SendingEmails(unittest.TestCase):
def setUp(self):
self.application = webapp.WSGIApplication([('/', EmailHandler)], debug=True)
def test_success(self):
app = TestApp(self.application)
response = app.get('http://localhost:8080/[email protected]&body=blah_blah_blah&subject=mySubject')
self.assertEqual('200 OK', response.status)
self.assertTrue('success' in response)
# somehow, assert email was sent
Gracias por el enlace a GAEUnit. Estaba buscando algo como esto. – sastanin