【发布时间】:2015-12-21 21:26:43
【问题描述】:
我的测试没有用 assertRaises 捕获 psycopg2.IntegrityError。我正在使用 Flask-SQLAlchemy。
def test_insert_cash_flow(self):
cf = CashFlow()
db.session.add(cf)
self.assertRaises(psycopg2.IntegrityError, db.session.commit)
我的 CashFlow SQLAlchemy 模型有几个 nullable=False 字段。它说我的测试失败并且 IntegrityError 被打印到屏幕上,但我的 assertRaises 没有捕捉到这一点。有人怀疑为什么吗?
【问题讨论】:
-
奇怪……确实。您是否尝试在文档中概述的 with 语句中使用 self.assertRaises? docs.python.org/2/library/unittest.html
-
你确定你有
db.session.commit而不是db.session.commit()? -
是的,我尝试过使用 with 语句,但同样失败。是的,我确定我有 db.session.commit 没有 ()
标签: python unit-testing flask sqlalchemy assert