/ / djangoテストシステムを使用してEmailMultiAlternativesオブジェクトの代替本文コンテンツをテストするにはどうすればよいですか? -django、メール、アサーション、django-testing

djangoテストシステムを使用してEmailMultiAlternativesオブジェクトの代替ボディコンテンツをテストするにはどうすればよいですか? -ジャンゴ、電子メール、アサーション、ジャンゴテスト

ビューにテキストとhtmlコンテンツを含むEmailMultiAlternativesオブジェクトがあります。

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

メッセージ本文のコンテンツの属性をテストすると、テキストバージョンが含まれていて、htmlコンテンツをアサートする方法がわかりません。

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

回答:

回答№1は0

あなたが書くとき- mail.outbox[0]のインスタンスであるメールオブジェクトが返されます EmailMultiAlternatives クラス。という属性があります alternatives 代替コンテンツのリストです。

添付した代替コンテンツは1つだけなので、次のようにフェッチできます。

mail.outbox[0].alternatives[0]

# above will return the following tuple:

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

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

メッセージをテストするには、次のようにします。

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