Python中的PostgreSQL数据库测试
你是怎么对使用PostgreSQL的Python数据访问层(DAL)进行单元测试的呢?
在使用SQLite时,你可以为每个测试创建一个内存数据库,但在PostgreSQL中是做不到的。
我想找一个库,可以用来设置数据库,并在测试完成后清理它。
我正在使用Sqlalchemy作为我的对象关系映射工具(ORM)。
4 个回答
6
你试过 testing.postgresql 吗?
10
pg_tmp(1) 是一个工具,目的是让这个任务变得简单(我是这个工具的作者和维护者)。下面是你如何用 SQLAlchemy 启动一个新的连接:
from subprocess import check_output
from sqlalchemy import create_engine
url = check_output(['pg_tmp', '-t'])
engine = create_engine(url)
这个命令会启动一个新的数据库,这个数据库会在60秒后自动销毁。如果有连接正在使用,pg_tmp
会等到所有活跃的连接都关闭后再进行操作。