在python,postgresql中进行数据库测试

Sta*_*low 6 python postgresql unit-testing sqlalchemy data-access-layer

你如何对使用postgresql的python DAL进行单元测试.

在sqlite中,您可以为每个测试创建内存数据库,但这不能用于postgresql.

我想要一个可用于设置数据库的库,并在测试完成后清理它.

我使用Sqlalchemy作为我的ORM.

era*_*man 7

pg_tmp(1)是一个旨在简化此任务的实用程序.以下是如何使用SQLAlchemy启动新连接:

from subprocess import check_output
from sqlalchemy import create_engine

url = check_output(['pg_tmp', '-t'])
engine = create_engine(url)
Run Code Online (Sandbox Code Playgroud)

这将启动一个在60秒内自动销毁的新数据库.如果连接已打开,pg_tmp则将等待所有活动连接关闭.


Lup*_*uch 2

您可以使用鼻子来编写测试,然后只需使用 SQLAlchemy 在安装/拆卸方法中创建和清理测试数据库。