PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

O que fazer quando um py.test trava silenciosamente?


Eu me deparei com o mesmo problema SQLite/Postgres com Flask e SQLAlchemy, semelhante ao Gordon Fierce. No entanto, minha solução foi diferente. O Postgres é rigoroso sobre bloqueios e conexões de tabelas, portanto, fechar explicitamente a conexão da sessão na desmontagem resolveu o problema para mim.

Meu código de trabalho:
@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()

Referência:SQLAlchemy