我正在使用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)。
如何在创建会话期间验证会话?
答案 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