問題タブ [django-unittest]
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 - Factory Boy でユーザー認証が必要な Django ビューのテスト
スタッフ ユーザーが下書き状態のオブジェクトを表示できるビューが必要です。しかし、このビューの単体テストを書くのは難しいと思います。
セットアップにFactory Boyを使用しています:
テスト用にログインしたスタッフ ユーザーがいる場合、それを使用してビュー (404 ではなく status_code 200) をテストするにはどうすればよいですか?
たとえば、このテストは失敗します (404 != 200) 私のビューでis_staff
True を持つユーザーがビューにアクセスできる場合:
python - Django unittest にカスタム管理コマンドを登録するにはどうすればよいですか
unittest 内にのみ存在するカスタム Django 管理コマンドを登録するにはどうすればよいですか?
Django 1.5 では、次のようにできます。
ただし、Django 1.8 では_commands
存在しなくなりました。コードを見ると、これらは django.core.management.get_commands を介して動的に取得されるようになりましたが、任意のコマンド クラスを追加または登録する方法はありません。これは可能ですか?
django - rest-framework パーミッション テスト
私は最新の django-rest-framework を使用しており、いくつかのテストを作成したいと考えています。ModelViewSet と にアクセスするカスタム権限がありrequest.GET
ます。これはすべてうまくいきますが、私の単体テストでは GET 辞書は空です。これが私のコードです:
これはすべて、ブラウズ可能な API で期待どおりに機能します。しかし今、私は単体テストを書きました:
そして、ここで例外があります:
request.GET
デバッグ中にが空であることに気付きましたhas_permission
。これが「本番」で機能しているのに単体テストでは機能していない理由を誰か知っていますか?
python - Django単体テスト:デフォルトのラベル/場所を指定できますか?
走ったら分かる
test*.py
次に、現在の作業ディレクトリの下にある名前のファイルでテストを検出します。
また、次のようにテスト ラベルを指定できることも知っています。
animals.tests
その後、モジュール内のすべてのテストが実行されます。
別のオプションは、次のようにディレクトリを指定することです。
そして、animals/
ディレクトリ内のすべてのテストが検出され、実行されます。(上記の例はdocsからのものです。)
テストするデフォルトのテスト ラベルまたはテストの検出に使用するディレクトリを指定する方法があるかどうかを知りたいです。
デフォルトでディレクトリでテストを実行したいとしましょうanimals/
(つまり、特に指定されていない場合)。その場合、次の 2 つのコマンドは等しくなります。
私はまだこのような別のテストを実行できるようにしたいのですが:
ありがとうございました。
PS管理コマンドを再定義できることは知っていtest
ますが、これは避けたいと思います。構成オプションなど、よりクリーンなソリューションを探しています。
python - Django テスト commit_on_success
私はラップされた関数を持っていて、@transaction.commit_on_success
Django 単体テストを実行しています。
関数は貼り付けるには長すぎますが、いくつかの擬似コードは次のとおりです。
次に、単体テストで次のことを確認しますlen(Order.objects.all()) == 0
私の関数は有効な Order オブジェクトを返しているので、トランザクションはコミットされています。
ここで何が間違っていますか?
編集:私はDjango 1.5を使用しています
python - データベーステーブルを作成する単体テストのdjangoアプリケーションエラーOperationalError:(1005、「テーブルを作成できません...)
いくつかの移行で構成される django アプリケーションでモデルを統合しようとしています。テストを準備しましたが、実行すると
次のエラーが表示されます
データベースは正常に作成されているので、データベースを作成する権限があると思います。これがどのテーブルを参照しているのか本当にわかりません。移行は正常に行われ、db は本番環境で正常に動作します。ここで何が問題になる可能性がありますか?
他にどんな情報が欲しいですか?
私のスタックトレース
移行が呼び出されるとエラーが発生することがわかります。
PS: 私は自分のデータベース (実際のデータベースではあるが開発用のもの) を削除し、migrate を実行しているテーブルを再作成しようとしました。同じエラーが発生しました。移行を再度実行すると、魅力的に機能しました....ここで何かが本当に本当に間違っています....
PS2: すべての移行フォルダーを削除し、移行フォルダーなしで開始すると、移行フォルダーが存在しない状態で移行を実行した後、同じエラーが発生しました....デバッグが非常に困難な非常に悪いエラー
PS3: モデルの 1 つ (少なくともこれまでにテストしたもの) の外部キーに問題があります。アプリを非アクティブ化して、用語でアクティブ化しようとしましたが、特定のアプリに到達するとエラーが発生しました.1つのモデルを分離して、問題を解決しました。外部キーをコメントアウトして作業しました。それらのいずれかのエラーのコメントを再度解除します。
1.6 と sqlite3 で動作し、1.8 と mysql に移動し、ブーム... エラーが発生しました。
MyCustomUser は、AbstractBaseUser と PermissionsMixin を継承するクラスです。
python - django の test.py 内の多くの Testcase クラスが正しく実行されない
django プロジェクトの test.py 内にさまざまな Testcase クラスを配置したいと考えています。モデルのテスト (crud) 用に 1 つ、ビューのテスト用に 1 つなど。次のクラスがあります。
そして2番目のテストケース
MyModel インスタンスは setup_database メソッドで作成されます。理由はよくわかりません。すべてのテストケース クラスが実行された後にテスト データベースが破棄された場合、setup_database メソッドは pk=1 で MyModel インスタンスを再作成する必要があるため、存在していたはずです。テスト データベースが破棄されない場合は、pk=1 の MyModel インスタンスが既に存在するため、問題は発生しないはずです。どんな助けでも大歓迎です。
python - Django unittest でデータベース全体を比較する最も簡単な方法
csv ファイルからデータベースにデータを入力するパーサーを単体テストしたいと思います。パーサー機能をテストする簡単な方法を探しています。
頭に浮かんだ 1 つの方法は、データベースにグラウンド トゥルース値を入力し、データベース ダンプをファイル (gTDbDump.xml) に作成することです。テスト ケースでは、パーサー機能を実行して、データベースにデータを入力し、データベースを別のファイル (testDbDump.xml) にダンプします。ファイルを比較するには、ファイル比較ツールを使用してファイルが等しいかどうかを比較します。
よりエレガントで簡単なソリューションはありますか?