Crear bases de datos en pruebas SQLAlchemy con PostgreSQL

Estoy creando una aplicación web Pyramid que se basa en la parte superior de SQLAlchemy y solo se basa en PostgreSQL como su back-end de base de datos.

¿Cuál sería una manera de tener la estructura de pruebas unitarias para que

La base de datos se construye una vez por ejecución de prueba, no en cada pruebasetUp() ya que esto es demasiado lento para una aplicación compleja

Las tablas de base de datos se (re) crean como se crearían en producción (por ejemplo, ejecutan migraciones desde Alembic). Cualquier base de datos sucia se destruye al comienzo de la ejecución de la prueba.

Es posible elegir un corredor de prueba personalizado a lapy.test si una característica específica fuera del marco de prueba de unidad de biblioteca estándar hace que sea más fácil escribir casos de prueba.

Respuestas a la pregunta(1)

Su respuesta a la pregunta