我想用自定义的SQLite数据库单元测试代码。这个问题的答案了question使用test_database
从playhouse.test_utils
。
然而,这是目前尚未有可用的。
我能有取代它呢?
您可以使用Database.bind()
或Database.bind_ctx()
方法,其记载:
http://docs.peewee-orm.com/en/latest/peewee/api.html#Database.bind_ctx
该文件涵盖了这个确切的方案:
MODELS = (User, Account, Note)
# Bind the given models to the db for the duration of wrapped block.
def use_test_database(fn):
@wraps(fn)
def inner(self):
with test_db.bind_ctx(MODELS):
test_db.create_tables(MODELS)
try:
fn(self)
finally:
test_db.drop_tables(MODELS)
return inner
class TestSomething(TestCase):
@use_test_database
def test_something(self):
# ... models are bound to test database ...
pass