7

Django メッセージ フレームワークを使用して、メッセージをテンプレートに渡して、さまざまなシナリオ (ユーザー アカウントの作成が成功した場合など) でレンダリングします。メッセージは、セッションの Cookie 内に保存されます。

print response.cookies['messages']
Set-Cookie: messages="b6870b4797b65640bb535519a5b53808fdc0ea24$[[\"__json_message\"\05420\054\"Account verified\054 you are now logged in\"]]"; Path=/

クッキーはMorselオブジェクトですが、メッセージの内容をテストするためにその構成部分を引き出すことができないようです。どんな助けでも大歓迎です!

4

1 に答える 1

8

編集: 2014 年 10 月 5 日:

別の方法は、応答コンテキストでメッセージを反復することです。Django テスト クライアントを使用すると、応答メッセージ項目は次の方法で解析できます。

for message in response.context['messages']:

各 Django Messageオブジェクトを返すと、テストの属性を調べることができます。これは、元のオプションのよりクリーンな代替手段です。

元の解決策:

アーカイブの目的で、元の実用的な解決策は、応答 Cookie 内の Cookie morsel オブジェクトを調査することでした。これは、新しいソリューションよりもきれいではありません。

self.assertTrue('Account verified' in response.cookies['messages'].value)

ユニットテストで。これは非常に醜い解決策のように思えますが、別の「アカウント確認済み」セットも別の同時メッセージも存在しないため、許容できるようです。

于 2012-02-23T13:34:15.653 に答える