如何使用SqlAlchemy

时间:2015-07-02 08:46:36

标签: python sqlalchemy flask-sqlalchemy flask-testing

我开始用Flask-SQLAlchemy编写测试,我想为那些添加一些灯具。我在我的开发数据库和很多表中都有很多好的数据,因此手动编写数据会很烦人。我真的很想从dev数据库中将数据采样到灯具中然后使用它们。有什么好办法呢?

2 个答案:

答案 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之外的任何内容为您的单元测试添加数据库夹具。