验证sqlachemy会话

时间:2016-01-11 17:54:49

标签: python sql sqlalchemy

我正在使用sqlalchemy在我的数据库中存储值。我想编写可以验证会话的测试用例。

获取会话对象的代码:

def get_session():
    Base = declarative_base()
    engine = create_engine('postgresql+psycopg2://testdb:hello@localhost/mydatabase')
    Base.metadata.bind = engine
    DBSession = sessionmaker(bind=engine)
    session = DBSession()
    return session

问题是即使我输入了错误的数据库名称,上面的代码仍然有效。当我尝试提交数据库时,它会抛出一个错误(OperationalError)。

如何在创建会话期间验证会话?

1 个答案:

答案 0 :(得分:1)

def validate(session):
    try:
        # Try to get the underlying session connection, If you can get it, its up
        connection = session.connection()
        return True
    except:
        return False