我需要一个python单元样本测试sqlalchemy模型与鼻子

时间:2009-05-07 09:12:34

标签: python unit-testing testing sqlalchemy nose

有人可以告诉我如何为使用nose创建的sqlalchemy模型编写单元测试。

我只需要一个简单的例子。

感谢。

2 个答案:

答案 0 :(得分:37)

您可以简单地创建一个内存中的SQLite数据库,并将您的会话绑定到该数据库。

示例:


from db import session # probably a contextbound sessionmaker
from db import model

from sqlalchemy import create_engine

def setup():
    engine = create_engine('sqlite:///:memory:')
    session.configure(bind=engine)
    # You probably need to create some tables and 
    # load some test data, do so here.

    # To create tables, you typically do:
    model.metadata.create_all(engine)

def teardown():
    session.remove()


def test_something():
    instances = session.query(model.SomeObj).all()
    eq_(0, len(instances))
    session.add(model.SomeObj())
    session.flush()
    # ...

答案 1 :(得分:2)

查看fixture项目。我们使用nose来测试它,它也是一种声明性地定义要测试的数据的方法,会有一些广泛的例子供你在那里使用!

另见fixture documentation