Сблъсках се със същия SQLite/Postgres проблем с Flask и SQLAlchemy, подобно на Gordon Fierce. Моето решение обаче беше различно. Postgres е строг по отношение на заключванията на таблици и връзките, така че изричното затваряне на връзката на сесията при разкъсване реши проблема за мен.
Моят работен код:
@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()
Справка:SQLAlchemy