J'ai rencontré le même problème SQLite/Postgres avec Flask et SQLAlchemy, similaire à Gordon Fierce. Cependant, ma solution était différente. Postgres est strict sur les verrous de table et les connexions, donc la fermeture explicite de la connexion de session lors du démontage a résolu le problème pour moi.
Mon code de travail :
@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()
Référence :SQLAlchemy