Тестирование базы данных в python, postgresql

Как вы можете протестировать свой DAL Python, который использует postgresql.

В sqlite вы можете создать базу данных в памяти для каждого теста, но это невозможно сделать для postgresql.

Мне нужна библиотека, которая может быть использована для настройки базы данных и очистки ее после завершения теста.

Я использую Sqlalchemy как свой ORM.

Вы можете использовать нос для написания тестов, а затем просто использовать SQLAlchemy для создания и очистки тестовой базы данных в методах настройки / удаления .

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 будет ждать, пока все активные соединения не будут закрыты.

Вы пробовали test.postgresql ?

Там также есть QuickPiggy , который способен очищаться после себя. Из документов:

Временный экземпляр PostgresSQL можно получить довольно легко:

pig = quickpiggy.Piggy (volatile = True, create_db = 'somedb')

conn = psycopg2.connect (pig.dsnstring ())

Interesting Posts