我是Django的新用户,我正在尝试使用unittest
检查出站电子邮件中是否有某些文字:
class test_send_daily_email(TestCase):
def test_success(self):
self.assertIn(mail.outbox[0].body, "My email's contents")
但是,我遇到了mail.outbox[0].body
的问题。它将输出\nMy email's contents\n
并且不会与测试文本匹配。
我尝试了几个不同的修复但没有运气:
str(mail.outbox[0].body).rstrip()
- 返回一个标识字符串str(mail.outbox[0].body).decode('utf-8')
- 无属性解码答案 0 :(得分:1)
这取决于您邮件的实际内容(普通或HTML),但简单的方法是对您正在测试的字符串进行编码。
# if you are testing HTML content
self.assertTextInHTML("My email's contents", mail.outbox[0].body)
# the string may need escaping the same way django escapes
from django.utils.html import escape
self.assertIn(escape("My email's contents"), mail.outbox[0].body)