問題タブ [django-contrib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1237 参照

django - Django のパスワード リセット フローの統合テストを作成できません

パスワード リセット フローの統合テストを実装しようとしていますが、「password_reset_confirm」ビューでスタックしています。すでにフローを手動でテストしましたが、正常に動作します。残念ながら、Django 単体テスト クライアントは、このビューで必要なリダイレクトに正しく従うことができないようです。

URL 構成

テストコード

ここで、アサートは失敗します。ユーザーは古いパスワードで認証されます。ログから、パスワードの変更が実行されていないことを検出できます。

いくつかの追加の有用な情報:

  • post成功を返しますHTTP 200
  • これは別のループが必要なので、これは間違ってresponse.redirect_chainいる[('/accounts/reset/token_removed/set-password/', 302)]と思います (手動の場合、ディスパッチ メソッドへの別の呼び出しが表示されます)。
  • Django 単体テスト ツールを使用してテストを実行しています。

このシナリオを適切にテストする方法について何か考えはありますか? これは、電子メールとログが適切に実行される (削除されない) ことを確認するために必要です。

どうもありがとう!

編集:解決策

受け入れられたソリューションでよく説明されているように、テストケースの作業コードは次のとおりです。

0 投票する
0 に答える
162 参照

django - NoReverseMatch: 「password_reset_confirm」のリバースが見つかりません。「password_reset_confirm」は有効なビュー関数またはパターン名ではありません

ユーザーがパスワードを忘れた場合の追跡に、Django の組み込みモジュールを使用します

チュートリアルの Django は 1.8 で、現在は 2.2 であることを学びました。そのモジュールを使用しようとしましたが、機能しません

例外値:

「password_reset_confirm」の逆が見つかりません。「password_reset_confirm」は有効なビュー関数またはパターン名ではありません。

例外の種類:

NoReverseMatch