問題タブ [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.

0 投票する
2 に答える
4843 参照

django - 同じ外部キーを持つ Django モデルのファクトリボーイ ファクトリを作成する方法

2 つ以上のモデルが共通の外部キーを持ち、同じものを持つべきときにそれぞれが独自のオブジェクトを作成すると、工場で問題が発生し続けます。

問題を説明するために、簡略化したモデル構造を次に示します。

したがって、 aRecordingにはAudioと があり、両方とも各言語コードに固有の をSubtitles持っています。Language

この構造のファクトリは次のとおりです。

音声と字幕が同じ言語であることは非常に一般的なケースです。通常、それは単なる書き起こしであるためです。したがって、上記のファクトリに反映されているように、デフォルトの RecordingFactory に、コードとして「en1」の言語のオーディオと字幕が必要です。

しかし、各ファクトリは言語の独自のインスタンスを作成しようとするため、RecordingFactory をインスタンス化するとrecording = RecordingFactory()(私はよくこれを行います)、例外が発生します。

それを解決するには、次のようなことができます。

しかし、それは冗長です。私の実際のプロジェクトでは、さらに多くのつながりがあるため、言語を 3 ~ 4 か所、場合によっては 4 レベルの深さで指定する必要があります。代わりに、既に存在する場合に作成または使用されるデフォルトを指定できるようにしたいと考えています。

存在する場合、これを回避する正しい方法は何ですか?

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

django - factory.Sequenceでfactory.SelfAttributeを使用するには?

私は次のようなモデルを持っています:

今、私は工場を建設しようとしています:

問題は、これが機能しないことです。テスト中に次のようになります。

では、Sequence で SelfAttribute を使用するにはどうすればよいでしょうか。私は使っている:

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

python - Django で Factory Boy を使用して依存モデルに値を渡すにはどうすればよいですか?

私はオープン ソースの django Web アプリに取り組んでおり、Factory Boy を使用していくつかのテスト用のモデルをセットアップすることを検討していますが、数時間ドキュメントを読んで例を見た後、敗北を受け入れる必要があると思いますとここで質問。

次のような Customer モデルがあります。

また、django.contrib.auth の標準の Django ユーザー モデルも使用しています。

これが私の工場コードです:

私の場合、そのような顧客を生成できるようにしたい

そして、正しいユーザー名と電子メール アドレスを使用して、対応するユーザーを生成します。

現在、次のエラーが発生しています。

これは、ユーザー ファクトリが作成される前に呼び出されない顧客の遅延属性に依存しているためだと思います。

上記のように、ファクトリを使用して Customer モデル インスタンスを作成し、対応するユーザーを作成できるようにするには、どうすればよいですか?

それだけの価値があるため、完全なモデルはgithub リポジトリでここに表示されます

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

python - Django Factory Boyは、関連する親を反復処理します

Clients、Draftschedules、LineItems、および Servers を含むプロジェクトがあります。

  • 各クライアントには 1 つの DraftSchedule があり、各 Draftschedule には多くの Lineitem があります

  • 各クライアントには多数のサーバーがあります

  • 各 LineItem には単一のサーバーがあります

ここに画像の説明を入力

ランダム データを使用して DraftSchedule ごとに LineItems を生成するコードがいくつかあります。ただし、結果の LineItems には、Draftschedule クライアントが実際に所有していないサーバーが含まれています。

サーバー選択セットを、Lineitem が作成されている Draftschedule の親クライアントが所有するサーバーのみに制限したいと思います。

これを呼び出すLineItemFactory()と、新しい LineItem オブジェクトが返され、LineItem のサーバーが DraftSchedule に関連付けられたクライアントによって実際に所有されていることを保証できます。

私は次のことを試しました:

関連する名前はどこにclient.serversありますが、関数は反復可能ではないため、少し行き詰まっています

これは可能ですか、それとも別の角度から問題にアプローチする必要がありますか?

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

django - スルーテーブルを使用してファクトリボーイで動的な多対多を設定する方法は?

スルー関係を使用して、ファクトリ ボーイの一連の django モデルと多対多の関係を設定する際に問題があります。レシピと材料がたくさんあります。量を設定するモデルを通じて、レシピと材料の間には多対多の関係があります。モデルごとに工場がありますが、それらをリンクさせることができません。

単純化された models.py:

単純化された factory.py

factory.RelatedFactory をいじってみましたが、実際にはどこにも行きませんでした。理想的には、次のことができるようになりたいだけです。

ただし、これを行うと、どちらの側にも多対多の関係が設定されず、recipingredient モデル自体の作成に失敗するようにも見えます。これを行う方法を知っている人はいますか?

編集:

私も試しました:

しかし、既存のレシピと材料のセットを使用してこれらのオブジェクトを作成する方法について頭を悩ませることはできません。

0 投票する
2 に答える
7456 参照

django - factory-boy Factory の SubFactory のリストを作成します

私はdjango 1.6とfactory-boyを使用しています。

こちらusernameはシンプルなCharFieldモデル。そのため、呼び出すたびにUserFactory()、オブジェクトという名前の一意のユーザーを保存して取得しています。

factory-boy では を使用できますfactory.SubFactory(SomeFactory)

SomeFactoryのリストを生成するにはどうすればよいParentOfSomeFactoryですか?

そのため、呼び出すParentOfSomeFactory()と、SomeFactory と ParentOfSomeFactory データベースのリストが作成されます

0 投票する
2 に答える
1223 参照

python - factory-boy subfactory はキーの代わりにオブジェクトを渡します

SQLAlchemy で factory boy を使用しています。

私は Fact オブジェクトを作成しようとしています。工場の少年に、Fact への外部キーである PatientDim オブジェクトを生成してもらいたいと思っています。しかし Subfactory はキーを渡さず、代わりにオブジェクト全体をforeignkey フィールドに渡します。

Subfactory を介して PatientDim キーのみを渡すにはどうすればよいですか?

工場.py

モデル.py

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

python - factory_boy でインスタンスのリストを含むフィールドを作成する方法

factory boy を使用していくつかのモデル (django ではない) をテストしていますが、別の factory の複数のインスタンスを含むリストを含むフィールドを表示するにはどうすればよいか疑問に思っていました。たとえば、クラスUserおよびGroupがあるとします。

そのようなユーザーが属するすべてのグループを含むUserファクトリ内にgroupsと呼ばれるフィールドを表示したいと思います。ファクトリの実行時に、デフォルトで 2 つのグループ [' group1 ', ' group2 '] を表示します。

上記の関連ファクトリを使用してみましたが、関連フィールドのデフォルト値を定義する方法がわかりません。この問題に光を当てることができるファクトリーボーイの第一人者はいますか?

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

python - 1 対多および多対多のフィールドを持つ Factory Boy モデル

pytest と Factory Boy を使用して SQLAlchemy モデルをテストしていますが、関係に関してドキュメントが不足していることに気づきました。複数のグループに属することができるユーザー (グループは複数のユーザーを保持できます) があり、複数のトークンを持つことができるようにスキーマを設定しましたが、トークンは 1 人のユーザーにのみ属します。

グループとトークンをユーザー インスタンスに追加する @factory.post_generation メソッドなど、さまざまなことを試してきましたが、ユーザーをフィクスチャに入れてテスト関数で使用すると、これらのフィールドは表示されません。このスキーマを Factory Boy でモデル化する方法について何か推奨事項はありますか?