我需要Python中的数据库清理器吗?

时间:2018-06-28 14:12:45

标签: python testing pytest

我来自Rails背景,是Python的新手。不幸的是,我在Google上进行搜索和搜索均未成功。

我们正在构建没有框架的Python应用程序。我们正在使用pytest进行测试,并使用factory-boy作为工厂。

我想知道我们是否需要为应用程序提供数据库清理程序。我发现了pytest_sessionstart和pytest_sessionfinish挂钩,它们似乎是进行清理的好地方。但是我不知道我们是否还需要像Rails测试中使用的数据库清理器之类的东西。

任何信息或帮助,我们将不胜感激!如果我确实需要更清洁的工具,则明确的说明或指向文档的链接将非常有用。

1 个答案:

答案 0 :(得分:1)

当我有类似的需求时,我使用Pytest固定装置(或yield固定装置,更适合现代python)来完成这项工作。

例如

# without editor, so with errors
@pytest.yield_fixture()
def db():
    db = create_db()
try:
    yield db
finally:
    cleanup_db(db)

def test_something(db):
   do_ugly_things(db)
   assert false