問題タブ [django-testing]
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.
django-forms - GET Formset は 200 ではなく 302 を返します (django)
私は inlineformset を使用しました。views メソッドは次のとおりです。
inlineformset の "post" メソッドのテストに成功しました。これがコードです。
get メソッドで次のことを試しました。
しかし、これはうまくいきません。status_code=200 を取得する代わりに、status_code=302 を取得します。なんで?おそらく、GET メソッドの合計フォームを指定する必要がありますか?
どんな助けでも大歓迎です!ありがとう!
さらに情報が必要な場合は、コメントを残してください。必要な情報を貼り付けます。
python - Djangoでどのようなテストを書くべきか
私がDjanoアプリを持っているとしましょう。ユーザーは、サインアップ、アクティベーションメールの受信、アカウントのアクティベーション、およびログインを行うことができます。ログイン後、ユーザーは、マネージャーを使用してモデルを処理するカスタムフォームを使用して、オブジェクトを作成、更新、および削除できます。
ここで何をテストする必要がありますか?リクエストフレームワークを使用してリクエストを作成し、ビューとフォームを介してチェーン全体をテストする必要がありますか、それともマネージャーとモデルをテストするための単体テストを作成する必要がありますか?
チェーン全体をテストすると、URLが適切に構成され、ビューが期待どおりに機能し、フォームがデータを適切にクリーンアップし、モデルとマネージャーもテストすることがわかります。Djangoテストフレームワークは、この種のテストよりも単体テストを対象としているようです。(これはツイルとセレンでテストする必要があるものですか?)
ユニットテストを書くとき、私は飼い葉桶とモデルをテストするようになりますが、URLとフォームは実際には機能しませんね?!
本当に基本的な質問ですが、いくつかの基本事項を正しく理解したいと思います。
みんなありがとう。
python - Django でフォームのテストを作成するにはどうすればよいですか?
テストを書いているときに、Django で自分のビューへのリクエストをシミュレートしたいと思います。これは主にフォームをテストするためのものです。簡単なテスト リクエストのスニペットを次に示します。
フォーム エラーの有無にかかわらず、ページは常に 200 の応答を返します。soemthing
フォームが失敗したこと、および特定のフィールド ( ) にエラーがあったことを確認するにはどうすればよいですか?
python - クエリセットを取る関数をテストするために Django クエリセットをモックする
私のDjangoプロジェクトにはユーティリティ関数があり、クエリセットを受け取り、そこからデータを取得して結果を返します。この関数のテストを書きたいと思います。QuerySetを「モック」する方法はありますか? データベースに触れないオブジェクトを作成したいのですが、使用する値のリスト (つまり、いくつかの偽の行) をオブジェクトに提供できます。これにより、クエリセットのように動作し、誰かがit/filter/get/all などでフィールド検索を行います。
このようなものはすでに存在しますか?
python - assertRaises を使用した Django のテストで、発生した例外が予期されたものであることを認識できない
次のテストコードスニペットがあります
テストは失敗します:
発生した例外が、渡した例外と同じではない理由がわかりませんassertRaises
のファイルの横にあるファイルをmanage.py test game
使用してコードを実行します。tests.py
models.py
wotw_project.game
この問題を調査したところ、インポートに問題がある可能性があることがわかりました (つまり、メインファイルがインポートされた同じファイルとは異なる)。ただし、ユニットテストを実行するために標準的な方法を使用しているため、これが私だけの問題である理由がわかりません。他の人が Django で assertRaises を使用していることは確かです!
python - DjangoTestClientにデフォルト値でフォームを投稿する
Djangoでいくつかのフォームのテストを書いています。これらのフォームは頻繁に変更されるため、フォームが変更されるたびにテストも変更する必要があるため、フォームパラメーターをテストにハードコーディングしないようにしています。私はこの性質のかなりの数の形を持っています。私は主に、各フォームフィールドを気にすることなく、情報が正しいテーブルに適切に格納されていることをテストしています。
Django TestClientを使用して、フォームを含むページをフェッチし、ファイルされたデフォルトのフォームフィールド値を使用してポストバックする方法はありますか?
私はこれをグーグルで検索しましたが、役に立ちませんでした。
yはみんなを助けますか?ありがとう。
python - Django では、tests.py のインポートにサイト名を追加する必要があるのはなぜですか?
いくつかの単体テストを に入れましたmysite/vncbrowser/tests.py
。これらを次のように実行できます。
ではtests.py
、モデル クラスを次のようにインポートします。
...そして、Integer3D
次のようなテストでカスタム フィールド タイプへの の挿入をテストします。
しかし、 でテストを実行すると、ソース内ののチェックが失敗python manage.py test vncbrowser
することがわかりました。ファイルでは、 (そのファイルで以前に定義された)への裸の参照には完全な名前があり、テストから渡されたオブジェクトには完全な名前があるようです。isinstance(value, Integer3D)
models.py
models.py
Integer3D
vncbrowser.models.Integer3D
mysite.vncbrowser.models.Integer3D
models.py
いくつかのデバッグ ステートメントからの関連コードは次のとおりです。
...この出力を生成します(明確にするためにいくつかの改行とスペースが追加されています):
インポートを次のように変更することで、このテストを機能させることができますtests.py
。
mysite
...しかし、ファイルに資格が必要な理由がわかりませんtests.py
。私のdjangoソースの他の場所では必要ないようです。明らかな何かが欠けていると確信していますが、おそらく誰かが説明できますか?
(実際、そのステートメントの直前からfrom mysite....
印刷すると、パスが含まれますが、含まれないため、インポートが機能する理由もわかりません。)sys.path
/home/mark/foo/mysite/
/home/mark/foo/
現在の作業ディレクトリは/home/mark/foo/mysite/
、実行したときですpython manage.py test vncbrowser
。
要求に応じて、私のプロジェクトのレイアウトは次のとおりです。
__init__.py
上記のファイルはすべて空です。Python 2.6.5 と Django 1.3 を使用しています。私は virtualenv で Python を使用しています。tests.py"\n".join(sys.path)
の開始時に出力すると、次のようになります。
更新: lbp's answerで提案されているように、tests.py の上部に以下を追加してみました:
...出力を生成しました:
django - djangoテストクライアントはすべてのURLで404を取得します
私はdjangoテストで最初の実験を行っていますが、使用しているURL(/でも)に関係なく、常に404テンプレートを取得するという問題があります。まったく同じコードをdjangoシェルにスローすると、期待どおりに機能し、要求されたURLの内容が常に表示されます。
ログインはTrueを返しますが、get()は失敗します。私がここで間違っていることのヒントはありますか?
django - Django-テストサーバーをいじる-304エラーなど
私のウェブアプリ(サイト全体へのログインが必要)で作業しているときに、面白い「グリッチ」に気づきました(それを呼び出すことができる場合)。Chromeで(テストサーバー上の)サイトにログインして、Djangoサイトを表示していました。次に、サイトからログアウトしてChromeを完全に閉じました。
次に、Firefoxを開いて、ログインページに移動することを期待して、DjangoサイトへのURLを貼り付けました。しかし、私はログインを求められず、すでにログインしていました。そこで、サイトからログアウトしてFirefoxを閉じました。
次に、Chromeを再度開いてログインしましたが、CSSスタイルがないことがわかりました。ログインすると、サイト全体でCSSスタイルが失われ、テストサーバー304
ですべてのCSSファイルとIMGファイルのエラーが発生し続けました。
エラーは時間の不一致に関係していることがわかりました304
(Djangoはログアウトしたと思っていましたが、Firefoxではログインしていました。混乱しています)。
これが回避できるのか、それともテストサーバーの「機能」なのか疑問に思っていました。このようなことは本番モードでも起こりますか?
私が求めていることを明確にするために編集してください:
ApacheでWebアプリを起動したときに、Djangoテストサーバーで発生した304エラーによるスタイルと画像の損失は引き続き発生しますか?
ありがとう!
django - djangoテストサーバー環境にログインする方法は?
Djangoコマンドを実行すると:
新しいデータベースを作成します。
そのインスタンスの管理インターフェースにログインするにはどうすればよいですか?