如何使用 Django 测试系统测试 EmailMultiAlternatives 对象中的替代正文内容?
How can I test alternative body content in EmailMultiAlternatives object using django test system?
我有带有文本的 EmailMultiAlternatives 对象,html 内容在我看来:
email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=recipient)
email.attach_alternative(messageHTML, 'text/html')
当我测试消息正文属性的内容包含文本版本时,我不知道如何断言html content:
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
当您写入 - mail.outbox[0]
时,将向您返回一个电子邮件对象,它是 EmailMultiAlternatives
class 的一个实例。它有一个名为 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)
我有带有文本的 EmailMultiAlternatives 对象,html 内容在我看来:
email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=recipient)
email.attach_alternative(messageHTML, 'text/html')
当我测试消息正文属性的内容包含文本版本时,我不知道如何断言html content:
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
当您写入 - mail.outbox[0]
时,将向您返回一个电子邮件对象,它是 EmailMultiAlternatives
class 的一个实例。它有一个名为 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)