問題タブ [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 投票する
6 に答える
10684 参照

python - Factory_Boy で管理者ユーザーを作成するにはどうすればよいですか?

私は比較的 Django の初心者で、自分のプロジェクトのテストを始めたところです。私がやりたいことは、Django Admin サイトにログインするセレンを使用した機能テストを構築することです。

最初にこのチュートリアルhttp://www.tdd-django-tutorial.com/tutorial/1/に従い、フィクスチャとダンプデータを使用して、テスト アプリ (新しいデータベースを作成する) で管理者アカウント情報を利用できるようにしました。これはうまくいきます。

次に、 factory-boyを使用して同じことができるかどうかを確認して、備品を交換したいと思いました。Factory boy は、tests.py ファイル内で必要なオブジェクトをインスタンス化することで機能します。どういうわけかこれを機能させることができず、Factory_boy のドキュメントはあまり役に立ちません...

ここに私のtests.pyがあります

これは、何らかの形で有効な管理者アカウントを作成しないため、ログインに失敗します。factory-boy を使用してそれを行うにはどうすればよいですか? それは可能ですか、それともフィクスチャを使用する必要がありますか?

(この投稿では、一部の人々はフィクスチャが必要であると提案しましたが、工場の少年は出てきませんでした: How to create admin user in django tests.py。同じ回答の下部で提案されている解決策も試しました: https://stackoverflow. com/a/3495219/1539688 . 私にはうまくいきませんでした...)

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

python - factory_boy を SQLAlchemy およびクラス メソッドで使用する

私は ORM として SQLAlchemy を使用して Pyramid アプリに取り組んでいます。クラスメソッドでモデルをテストしようとしています:

factory_boyを使用してテストしていますが、テスト工場をセットアップしようとしている方法は次のとおりです。

RoleFactory.find_all()ただし、テストで呼び出そうとすると、次のエラーが表示されます: E UnboundExecutionError: マッパーで構成されたバインドが見つかりませんでした。

metaモンキーパッチを適用して、そのグローバル セッションを自分のセッションに置き換えようとしましたが、次のエラーが発生しました: E AttributeError: type object 'RoleFactory' has no attribute 'find_all'

呼び出してみRoleFactory.FACTORY_FOR.find_all()ましたが、同じ UnboundExecutionError が発生します。

factory_boy がクラスメソッドについて知るために何か他のことをする必要がありますか?

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

python - OneToOne関係と関連フィールドを持つdjango factory boy factory

Factory Boyを使用して、django アプリのテスト ファクトリを作成しています。私が問題を抱えているモデルは、django ユーザー認証モデル (django < 1.5 を使用) と OneToOne の関係を持つ非常に基本的なアカウント モデルです。

ここに私の工場があります:

したがって、AccountFactory が呼び出されるたびに、ファクトリー ボーイが関連する UserFactory を作成することを期待しています。

ただし、テストを実行すると、複数の User モデルが作成されているように見え、統合エラーが表示されます。

ドキュメントには、循環インポートを処理するときに for ループに注意することが記載されていますが、それがどうなっているのか、またどのように修正するのかはわかりません。ドキュメント

Factory Boy に精通している方が、この完全性エラーの原因について意見を述べたり、何らかの洞察を提供したりしていただければ幸いです。

0 投票する
3 に答える
3205 参照

python - FactoryBoy は SubFactory の属性に属性を割り当てます

FactoryBoy で ModelFactory を定義する際に、SubFactory によって作成された別のモデルの属性にアクセスし、それをこの ModelFactory の属性に割り当てる必要があります。

これは私がやりたいことです:

MyModelFactory クラス定義の id にアクセスするための AdminUser オブジェクトがないため、明らかに機能しません。

これは私がやったことですが、醜いです:

Factory_Boyのドキュメントを読み込もうとしましたが、属性に遅延アクセスできるクラスまたは関数が見つかりませんでした。誰にも提案はありますか?

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

python - ファクトリーボーイ vs. カスタムオブジェクト

質問:

以下の状況でFactory Boyを使用する利点は何ですか? 独自のカスタム オブジェクトを配信してはならない理由がよくわかりません。私が間違っている場合は、その理由を教えてください。

テスト中に Factory Boy を使用してユーザー インスタンスを作成しています。これにより、UserProfile オブジェクトが動的に作成されます (Factory_Boyドキュメントの標準レシピ)。

Data クラスは、投稿中にフォームに配信されるデータを作成します (私が使用している他のメソッドは、ログイン、登録、およびユーザーのアクティブ化を行う self.client.post メソッドのデータを配信します。何か不足していない限り、データ要件が異なる場合に ClassName.attributes() を使用するために、状況ごとに個別の DjangoModelFactory サブクラスを構築するには、この方向に進んだもう 1 つの理由は、UserProfile に User 外部キーがあるため、UserProfileFactory を呼び出すことができなかったことです。 .attributes() 直接、UserFactory.attributes() のみ。

次に、統合テスト中に次のコンテキストでこのようなデータを使用しています。

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

python - 単純な日時を受け取った日時フィールド

DateTimeField received a naive datetime while time zone support is activeひねりを加えた古典的な警告に遭遇しています。が提供するファクトリを使用するテストを実行すると、エラーが発生しますfactory_boy。以下は工場の例です。

ご覧のとおり、Django のタイムゾーンの now() メソッドを使用しています。これは、単純な datetime 処理全体を処理する必要がありますが、そうではありません。モデルは次のようになります。

また、私のsettings.pyファイルで、私は設定しUSE_TZ = Trueました.

ライブラリをインストールpytzして使用し、日時オブジェクトを作成してファクトリのフィールドに入力しようとしましたが、それも機能しません。

警告を抑制できることはわかっていますが、すでにコードの他の領域で私を悩ませ始めているので、その真相を突き止めたいと思います。. .