PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Was tun, wenn ein py.test unbemerkt hängt?

Ich bin mit Flask und SQLAlchemy auf dasselbe SQLite/Postgres-Problem gestoßen, ähnlich wie bei Gordon Fierce. Allerdings war meine Lösung anders. Postgres ist streng in Bezug auf Tabellensperren und -verbindungen, daher hat das explizite Schließen der Sitzungsverbindung beim Teardown das Problem für mich gelöst.

Mein Arbeitscode:

@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()

Referenz:SQLAlchemy