assertRaises 没有捕捉到 IntegrityError ,Flask SQLAlchemy
assertRaises not catching IntegrityError , Flask SQLAlchemy
我的测试没有用 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 没有捕捉到这个。有人怀疑为什么吗?
SQLAlchemy 引发 sqlalchemy.exc.IntegrityError
,它包装了底层异常,而不是来自数据库驱动程序的异常。
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.name [SQL: 'INSERT INTO user (name) VALUES (?)'] [parameters: (None,)]
测试正确的异常。
from sqlalchemy.exc import IntegrityError
self.assertRaises(IntegrityError, db.session.commit)
我的测试没有用 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 没有捕捉到这个。有人怀疑为什么吗?
SQLAlchemy 引发 sqlalchemy.exc.IntegrityError
,它包装了底层异常,而不是来自数据库驱动程序的异常。
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.name [SQL: 'INSERT INTO user (name) VALUES (?)'] [parameters: (None,)]
测试正确的异常。
from sqlalchemy.exc import IntegrityError
self.assertRaises(IntegrityError, db.session.commit)