問題タブ [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 に答える
714 参照

python - FactoryBoyを使ってリストサイズを指定する方法

私がこのモデルを持っているとしましょう:

作成時に作成される foo の数を決定できるようにしたいです。

次のような工場を試しました

もちろん、必要な長さの Foo() のリストを手動で作成し、FooContainerModel をインスタンス化することもできますが、それは私が望むものではありません。解決策はありますか?

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

python - Factory boy ImageFiled を使用すると、属性が見つからない _committed エラーが発生する

を必要とするテスト ケースのデータを設定しようとしていますdjango.db.models.ImageFieldfactory.django.ImageFieldfactory-boy から使用しようとしていますが、エラーが発生しますAttributeError: 'ImageField' object has no attribute '_committed'

単純化された django オブジェクト:

工場クラス:

テストでの使用:

これにより、 を作成する行を指す次のエラーが表示されますGalleryImageFactory

私はpython(2.7.6)、factory-boy(2.4.1)、Django(1.6.8)を実行しています

完全なスタック トレース:

指定されたファイル名を使用して有効な画像を取得する他の方法のヒントを含め、助けていただければ幸いです。前もって感謝します!

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

python - FactoryBoy SubFactory によって生成されたこのオブジェクトを SQLAlchemy が外部キーに変換しないのはなぜですか?

私は、Flask と SQLAlchemy (Flask-SQLAlchemy 拡張機能を介して) をFactory_Boyと共に使用しています。

私のGearItemモデルには への外部キーがありGearCategoryます。Factory_BoySubFactoryは、元のファクトリで外部キーとして使用されるオブジェクトを作成する関数を通じてこれを処理します。

ここに私のモデル定義があります:

そして、これが私の factory_boyFactory定義です。

問題なく呼び出すことができ、外部キーとして使用することを目的とした aと親のGearItemFactory()両方を明確に生成しています。GearItemGearCategory

ただし、 を呼び出すと、SQLAlchemy は によって作成されたオブジェクトを、外部キーとして使用できる整数にdb.session.flush()変換しません。SubFactory代わりに、オブジェクト自体を基礎となるデータベース ドライバーに渡そうとしますが、データベース ドライバーは、 type のオブジェクトを処理する方法がわからないことを訴えますGearCategory

私が得ているエラーはsqlalchemy.exc.ProgrammingError: (db_driver) can't adapt type 'GearCategory' [SQL: 'INSERT INTO gear_item (...

私は何を間違っていますか?

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

django - py.test で django ユーザーに factoryboy を使用する

Django アプリの UnitTests を py.test に移行していますが、UnitTests では factory-boy を使用して django.contrib.auth.models.User のインスタンスを作成しています。これはpytest-factory-boyでどのように行うことができますか?

0 投票する
4 に答える
1899 参照

python - GeoDjango PointFields で Factory Boy を使用する

私が始めた新しい GeoDjango プロジェクトのテストを書いています。通常、私はFactory BoyFakerを使用して、テスト用のモデル インスタンスを作成しました。ただし、GeoDjango PointField フィールドをモックする方法は明確ではありません。Spacialiteでレコードを見ると、バイナリ ブロブとして表示されます。

私は GIS にまったく慣れていないので、Django で PointFields のファクトリを作成する方法について少し混乱しています。

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

django - factory_boy で関連する子レコードの ID を取得する

私はfunctionいくつかのを持っておりparameters、次にその関数の特殊化を行い、関数のパラメータごとにinstantiationいくつかを持っています。settingsだから私は次のような構造を持っています:

を作成するために使用FunctionFactoryできます。factory.RelatedFactoryparameters

しかし、内で作成されたオブジェクトにアクセスできないため、 をFunctionInstantiationFactory使用factory.RelatedFactory(ParameterSetting)して作成することはできず、 を設定できません。ParameterSettingsparameterFunctionFactoryparameter_setting.function_parameter_id

で作成されたパラメータをFunctionInstantiationFactory検索するにはどうすればよいですか? の戻り値からそれらを取得できますか? または、データベースを確認する必要がありますか?parameter_idFunctionFactoryRelatedFactory(FunctionFactory)

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

python - SubFactory と LazyAttribute で作成されたオブジェクトを factory_boy の RelatedFactory に渡す

で作成されたオブジェクトを渡すために呼び出しfactory.LazyAttribute内で使用しています。これはうまくいきます。SubFactoryfactory_parent

しかし、作成したオブジェクトを に渡すと、RelatedFactoryLazyAttribute表示されなくなりfactory_parent、失敗します。

これはうまくいきます:

への同一の呼び出しLazyAttributeはここで失敗します:

同一のLazyAttribute呼び出しは factory_parent を見ることができなくなり、AnotherObject値にのみアクセスできます。LazyAttribute は次のエラーをスローします。

これを回避する方法はありますか?

sub_object=sub_object を ObjectFactory 呼び出しに入れることはできません。

私がそうするなら:

2 番目の sub_object が作成されますが、両方のオブジェクトが同じ sub_object を参照する必要があります。私はSelfAttribute無駄にしようとしました。

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

python - ~Factory サブクラスで「self」なしで factory_boy スーパー クラス メソッドを呼び出す

サブクラスから親ファクトリのメソッドを呼び出す方法はありますか?

はクラスのインスタンスではなく、ファクトリが返すオブジェクトであるため、通常のsuper(ThisClass, self)orParentClass.method(self)メソッドは機能しません。self

エラーはTypeError: super(type, obj): obj must be an instance or subtype of typeです。

(ショートカットsuper().post(create, extracted, kwargs)は同じエラーを生成します。)

SomethingFactory.postサブクラスからその親ファクトリ メソッドにアクセスするにはどうすればよいですか?

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

python - factory_boy ファクトリの多重継承 - 最初の親のみを継承しているようです

2 つの ~Factory factory_boy クラスから継承しようとしていますが、最初のクラスのみが継承されているようで、2 番目のクラスは無視されます。(彼らは共通の親を持っています。)

両方を継承する方法はありますか?

これは困難な注文であることは承知していますが、これにより、私が抱えている問題に対する非常に素晴らしいソリューションが可能になり、必要なテスト ケースのすべての組み合わせを多重継承だけで簡単に作成できるようになります。(factory_boy でサポートするのはおそらく「単純」ではないことを認識しています。)