Ik kwam hetzelfde SQLite/Postgres-probleem tegen met Flask en SQLAlchemy, vergelijkbaar met Gordon Fierce. Mijn oplossing was echter anders. Postgres is streng wat betreft tafelvergrendelingen en verbindingen, dus het expliciet sluiten van de sessieverbinding bij demontage loste het probleem voor mij op.
Mijn werkende code:
@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()
Referentie:SQLAalchemie