2017-11-03 4 views
3

私はジャンゴに新たなんだとアウトバウンドのメールでのいくつかのテキストがありますかどうかを確認するためにunittestを使用しようとしています:Djangoの電子メールの内容をテストするには?

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&#39s contents\nを出力し、テストテキストと一致しません。

私は運を持ついくつかの異なる修正しようとしました:

  • str(mail.outbox[0].body).rstrip()は - 、私はこれがなければなりません知っていない属性

謝罪をデコード - idential文字列

  • str(mail.outbox[0].body).decode('utf-8')を返します。簡単な仕事。 Railsではテキストを解析するためにNokogiriのようなものを使用します。 Djangoでこれを解析する正しい方法は何ですか?私はthe documentationでこれに関する指示を見つけることができませんでした。

  • +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) 
    
    関連する問題