pytestとFactory BoyでSQLAlchemyモデルをテストしていますが、関係の点ではドキュメントが不足しています。私がしました1対多と多対多のフィールドを持つFactory Boyモデル
_user_groups_table = Table(
'user_groups', Base.metadata,
Column('user_id', INTEGER(unsigned=True), ForeignKey('user.id')),
Column('group_id', INTEGER(unsigned=True), ForeignKey('user_group.id'))
)
class UserGroup(Base):
__tablename__ = 'user_group'
id = Column(INTEGER(unsigned=True), Sequence('user_group_id_seq'), primary_key=True, autoincrement=True)
name = Column(String(255), unique=True, nullable=False)
class User(Base):
__tablename__ = 'user'
id = Column(INTEGER(unsigned=True), Sequence('user_id_seq'), primary_key=True, autoincrement=True)
name = Column(String(255), unique=True, nullable=False)
groups = relationship('UserGroup', secondary=_user_groups_table)
auth_tokens = relationship('Token', cascade='delete')
class Token(Base):
__tablename__ = 'token'
id = Column(INTEGER(unsigned=True), Sequence('token_id_seq'), primary_key=True, autoincrement=True)
user_id = Column(INTEGER(unsigned=True), ForeignKey('user.id'), nullable=False)
value = Column(String(511), unique=True, nullable=False)
:私は私のスキーマがセットアップされているので、そこに複数のグループに属することができ、ユーザーがある(グループは、複数のユーザーを保持することができます)と、彼らは複数のトークンを持つことができますが、トークンは、単一のユーザーに属しますユーザーのインスタンスにグループ&トークンを追加する@ factory.post_generationメソッドを含むさまざまなことを試していましたが、ユーザーをフィクスチャに入れてテスト機能で使用すると、これらのフィールドは決して表示されません。このスキーマをFactory Boyでモデル化する方法に関する推奨事項はありますか?
答えていただきありがとうございます。私のセッションを自動コミットと自動フラッシュで初期化しようとすると、両方ともFalseに設定されていました。 – sandorlev