2017-06-27 59 views
0

如何編寫單元測試以確認插入無效記錄失敗時使用SQLAlchemy/Postgres?我目前這樣做:如何使用SQLAlchemy測試無效記錄插入?

session.add(invalid_record) 
session.flush() 
query = list(session.query(Article).filter_by(
       record_id=invalid_record.record_id, 
      )) 
assert len(query) == 0 

但是,當我嘗試添加無效記錄(違反了非空約束)時,失敗。

回答

2

如果您正在使用unittest你可以使用assertraises,看到前面的回答:https://stackoverflow.com/a/28223420/5982697

因此,像:

with self.assertRaises(sqlalchemy.exc.IntegrityError): 
    session.add(invalid_record) 

假設它提出了一個sqlalchemy.exc.IntegrityError

編輯:大寫R

+0

這不是很['assertRaises'](https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaises)以大寫ř ? –