我正在用Python编写一个测试夹具,使用pytest+SQLAlchemy,并使用mixer生成数据。然而,mixer为我创建的所有模型生成关系,即使我想显式地创建每个记录
我的代码如下所示:
@pytest.fixture()
def filter_test_reports(mix, filter_test_types, db):
types = filter_test_types
a = db.session.query(models.Report).count()
# This sets a to 0
ret = [
mix.blend(
models.Report,
created_at=datetime.datetime.now() - datetime.timedelta(days=1),
samples=[
mix.blend(models.Sample, data=[
mix.blend(models.SampleData, type=types[0], value=1),
mix.blend(models.SampleData, type=types[1], value=1),
])
],
meta=[
mix.blend(models.ReportMeta, report_meta_key='key_1', report_meta_value='1'),
mix.blend(models.ReportMeta, report_meta_key='key_2', report_meta_value=1),
]
),
mix.blend(
models.Report,
created_at=datetime.datetime.now() - datetime.timedelta(days=2),
samples=[
mix.blend(models.Sample, data=[
mix.blend(models.SampleData, type=types[0], value=2),
mix.blend(models.SampleData, type=types[1], value=2),
])
],
meta=[
mix.blend(models.ReportMeta, report_meta_key='key_1', report_meta_value='2'),
mix.blend(models.ReportMeta, report_meta_key='key_2', report_meta_value=2),
]
),
mix.blend(
models.Report,
created_at=datetime.datetime.now() - datetime.timedelta(days=3),
samples=[
mix.blend(models.Sample, data=[
mix.blend(models.SampleData, type=types[0], value='3'),
mix.blend(models.SampleData, type=types[1], value=3),
])
],
meta=[
mix.blend(models.ReportMeta, report_meta_key='key_1', report_meta_value=3),
mix.blend(models.ReportMeta, report_meta_key='key_2', report_meta_value=3),
]
)
]
b = db.session.query(models.Report).count()
# This sets b to 18
看到了吗,即使我只有blend()
3 Report
个模型,但由于混音器,我最终得到了18个吗?我怎样才能防止这种情况?我只想在我的固定装置的3份报告
目前没有回答
相关问题 更多 >
编程相关推荐