Je suis un novice de python et du moteur d'applications.Test d'unité et simulation d'expéditeur d'e-mails en Python avec Google AppEngine
J'ai ce code qui envoie un email basé sur des paramètres de requête après une certaine logique d'authentification. dans mes tests unitaires (j'utilise GAEUnit), comment puis-je confirmer qu'un e-mail avec des contenus spécifiques a été envoyé? - c'est-à-dire comment je me moque de l'emailer avec un faux emailer pour vérifier que l'envoi a été appelé?
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>")
Et les tests unitaires,
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
Merci pour le lien vers GAEUnit. Je cherchais quelque chose comme ça. – sastanin