Mi sono imbattuto nello stesso problema SQLite/Postgres con Flask e SQLAlchemy, simile a Gordon Fierce. Tuttavia, la mia soluzione era diversa. Postgres è severo riguardo ai blocchi e alle connessioni delle tabelle, quindi la chiusura esplicita della connessione della sessione durante lo smontaggio ha risolto il problema per me.
Il mio codice di lavoro:
@pytest.yield_fixture(scope='function')
def db(app):
# app is an instance of a flask app, _db a SQLAlchemy DB
_db.app = app
with app.app_context():
_db.create_all()
yield _db
# Explicitly close DB connection
_db.session.close()
_db.drop_all()
Riferimento:SQLAlchemy