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

Rob*_*tVa 22 python testing unit-testing sqlalchemy nose

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

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

谢谢.

cod*_*ape 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()
    # ...
Run Code Online (Sandbox Code Playgroud)

  • 如果SQLLite不是您的生产数据库,这是一个可怕的答案.切勿使用与生产中使用的数据库不同的数据库进行测试.他们会有很多不同之处,你正在为自己做好准备. (7认同)