3

twilldjango-test-utilsを使用してdjangoアプリケーションをテストしていますが、ログインしていません。

djangoセッションCookieを設定していないと思います。を呼び出すWebページ(ツイル)にアクセスすると、request.session.set_test_cookie()呼び出しが戻った後twill.show_cookies()(Cookieを印刷する必要があります)、Cookieが表示されません。別のページ/ビューで、をrequest.session.test_cookie_worked()返しますFalse

奇妙なことに、別のページではrequest.set_cookie(...)、手動でCookieを設定するための呼び出しがあり、それは機能します。twill.show_cookies()そのクッキーを示しています。そのため、一部のCookieは機能していますが、セッションミドルウェアが機能していないようです...

何が起こっているのでしょうか?djangoセッションCookieをツイルに設定するにはどうすればよいですか?

他の何人かの人々は同様の問題を抱えています、例えばdjango-users別のツイル/djangoスクリプトのクッキーについてコメント

4

1 に答える 1

0

FC が言ったように、クライアントとサーバーが異なるマシンであり、時間 (またはタイムゾーン) が一致しない場合、Cookie の有効期限の問題が発生する可能性があります。

のコードをset_test_cookie()再確認したところ、その値はかなり正常に設定されているようです。問題が発生しているページがエラーを返していない (したがって を設定していないtest_cookie) ことは確かですか? 起こり得る方法はたくさんありますが、私の頭の上から:

  • Twill はHost、アプリが必要とするヘッダーを送信しない場合があります
  • Twill がrefererアプリの要求を送信しない場合があります
  • ツイルは、圧縮/暗号化/マルチパート/その他をサポートしていない可能性があります
  • Twill は、他の方法でブラウザを完全にエミュレートできない場合があります
  • 他のミドルウェアの 1 つは、上記のいくつかの組み合わせを必要とする場合があります

他のミドルウェアを再確認してください。この問題のみをテストする空のプロジェクトを作成してみてください。管理者のみが有効になっている空のプロジェクトで十分です。最小限の構成で複製できる場合は、バグを追跡するのにより役立ちます。

于 2011-11-21T09:04:40.510 に答える