問題タブ [factory-boy]
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 - ジャンゴ:南のデータ移行の工場の少年?
以前は、サウス データ移行を使用してテーブルのデータを更新していました。
什器に関しては、将来はファクトリーボーイを使用したいと考えています。
南側のデータ移行の内部には のみがありorm
、実際のモデルをインポートしてはなりません。
サウスデータマイグレーション内でファクトリボーイを使用することは可能ですか?
背景: 両方の場所でコードを再利用したい:
- 南のデータ移行
- 単体テスト
django - 非データベースフィールドのジャンゴのファクトリーボーイ
私は、保存時に外部サービスでアカウントの作成をトリガーするdjangoモデルを持っています(djangoとはまったく関係ありません)。ただし、テストのために、このアカウントの作成を抑制したいと思います。マネージャーの save() メソッドをオーバーライドしてそこから kwarg をポップするか、非データベース フィールド プロパティをDjango モデルの非データベース フィールドに従ってモデルに追加し、それを save メソッドで確認することができます。
ただし、factoryboy を使用してオブジェクトを作成しようとすると、モデル内の実際のフィールドをチェックしているように見えますが、プロパティがフィールドではないためにクラッシュします。
factoryboy を介してこのような追加のパラメーターを渡す方法について何か考えはありますか?
django - factory_boy をインストールした後、インポートが認識されません。
Pip install factory_boy は問題なくパッケージをインストールしているようです。pip freeze を実行すると、次のように表示されます。
ただし、テストを編集して import factory または import factory.django を配置すると、次の結果が得られます。
私は次のアドバイスに従いました: Trouble installation factory_boy with pip with no results.
続行する方法がわからない場合は、助けていただければ幸いです。
python - factory_boy UserFactory: そのようなテーブルはありません: auth_user
を作成しようとしていますがUserFactory
、実行中に次のエラーが発生します./manage.py test
。
これは私のfactories.py
ファイルがどのように見えるかです:
ここで何が起こっているか知っている人はいますか?
python - dango_get_or_create 使用時の KeyError
次のファクトリーでFactory Boy 2.4.1、Django 1.4.11、およびpython 2.7を使用しています:
そして、ファクトリでユーザーを作成しようとするたびに、次のようになります。
既存のキーをフィールドに入れようとしましたがdjango_get_or_create
、成功しませんでした。何がうまくいかないのですか?
コメントが言うように、間違っているのは、それが読むべきだということdjango_get_or_create = ('username',)
です; つまり、データベースではなく、クラスのキーです。
python - Factory Boy のデータベースを指定するには?
FactoryBoy は、常にデフォルト データベースにインスタンスを作成するようです。しかし、次の問題があります。
コードはデータベースを指していglobal
ます。ファクトリ内でデータベースを指定する方法が見つかりませんでした:
python - ファクトリーボーイのpost_generationは、リストが必要なときにManyRelatedManagerを提供します
私は明らかに気まぐれです。最初からそれを認めます。私は次の工場を使用しています
でこれを作成するとPDS=DataSheetFactory(product_contributors= (<tuple of users>))
、フィールドにユーザーのリストが期待されますproduct_contributors
が、代わりに が取得されるdjango.db.models.fields.related.ManyRelatedManager
ため、テストは機能しません。ここで「一般的なレシピ」に従っているので、どうすればよいでしょうか?
明確にするために、ファクトリーボーイを使用して、モデルの多対多フィールドでユーザーのリストを作成する方法を尋ねています。ドキュメントで提案されていることを試してみましたがManyRelatedManager
、リストではなく を取得するため、factory_boy
使用できないインスタンスが生成されます。
python - Djangoのテスト間でオブジェクトの主キーが増加するのはなぜですか?
SetUp()
メソッドでは、データは各テスト間でクリアされ、再作成されることになっています。では、なぜ id はあるテストから別のテストへと増加するのでしょうか? それは私には明らかではありません。
この方法では、ID に基づいてテストを作成することはできません (ID は他のテストに依存しているため)。そのため、常に結果として取得したいと考えてい1
ます。
データ自体には問題がないことに注意してください。古いデータは、あるテストから別のテストにクリアされます。問題はIDに関するものです。
問題が Django ではなくデータベースに関連しているユニット テスト間で Django object ids incrementを読みましたが、Django にそれを変更するトリックはありますか?