我开始用Flask-SQLAlchemy编写测试,我想为那些添加一些灯具。我在我的开发数据库和很多表中都有很多好的数据,因此手动编写数据会很烦人。我真的很想从dev数据库中将数据采样到灯具中然后使用它们。有什么好办法呢?
答案 0 :(得分:2)
我会使用factory boy
创建一个模型工厂:
"role_thumper": [
"thumper-msatl1-prod-1.env.fake.com",
"thumper-msatl1-prod-2.env.fake.com",
"thumper-rwva1-prod-1.env.fake.com",
"thumper-rwva1-prod-2.env.fake.com",
"thumper-rwva1-prod-3.env.fake.com",
"thumper-rwva1-prod-4.env.fake.com",
"thumper-rwva1-prod-5.env.fake.com",
"thumper-rwva1-prod-6.env.fake.com",
"thumper-staging-1.env.fake.com"
],
"role_thumper_mongo": [
"thumper-mongo-staging-1.env.fake.com",
"thumper-mongo-staging-2.env.fake.com",
"thumpermongo-rwva1-staging-1.env.fake.com",
"thumpermongo-rwva1-staging-2.env.fake.com"
],
"role_thumper_mongo_arb": [
"thumper-mongo-arb-staging-1.env.fake.com",
"thumpermongo-arb-rwva1-staging-1.env.fake.com"
],
然后创建实例:
import factory
from . import models
class UserFactory(factory.Factory):
class Meta:
model = models.User
first_name = 'John'
last_name = 'Doe'
admin = False
添加静态数据只需以kwarg的形式创建
UserFactory.create()
所以要在for循环中播放一堆东西。 :)
答案 1 :(得分:0)
如果你需要使用SQLAlchemy或其他ORM /后端来处理灯具,那么Fixture包可能是有用的:Flask-Fixtures 0.3.3
这是一个简单的库,允许您使用除JSON或YAML之外的任何内容为您的单元测试添加数据库夹具。