/ / Wie kann ich alternative Body-Inhalte im EmailMultiAlternatives-Objekt mit dem Django-Testsystem testen? - Django, E-Mail, Behauptungen, Django-Tests

Wie kann ich alternative Körperinhalte im EmailMultiAlternatives-Objekt mit dem Django-Testsystem testen? - Django, E-Mail, Behauptungen, Django-Tests

Ich habe ein EmailMultiAlternatives-Objekt mit Text- und HTML-Inhalten in meiner Ansicht:

email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=recipient)
email.attach_alternative(messageHTML, "text/html")

Wenn ich den Inhalt des Nachrichtentextattributs teste, enthält er die Textversion und weiß nicht, wie ich den HTML-Inhalt behaupten soll:

self.assertHTMLEqual(mail.outbox[0].body, message) # This test passes
self.assertHTMLEqual(mail.outbox[0].<???>, messageHTML) # But here I don"t know what to do

Antworten:

0 für die Antwort № 1

Wenn du schreibst - mail.outbox[0]wird ein E-Mail-Objekt an Sie zurückgegeben, bei dem es sich um eine Instanz von handelt EmailMultiAlternatives Klasse. Es hat ein Attribut namens alternatives Das ist eine Liste von alternativen Inhalten.

Da Sie nur einen alternativen Inhalt angehängt haben, können Sie ihn folgendermaßen abrufen:

mail.outbox[0].alternatives[0]

# above will return the following tuple:

("<html>...</html>", "text/html")

# ______________/    _______/
#        |                |
#   HTML content        mimetype

Um die Nachricht zu testen, können Sie Folgendes tun:

self.assertHTMLEqual(mail.outbox[0].alternatives[0][0], messageHTML)