如何使用SQLAlchemy测试无效的记录插入?

时间:2017-06-27 15:38:54

标签: python postgresql unit-testing sqlalchemy

如何使用SQLAlchemy / Postgres编写单元测试以确认插入无效记录失败?我目前正在这样做:

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

但是当我尝试添加无效记录(违反Not Null约束)时,这会失败。

1 个答案:

答案 0 :(得分:2)

如果您使用的是assertraises,则可以使用unittest,请参阅此前一个答案:https://stackoverflow.com/a/28223420/5982697

类似于:

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

假设它引发sqlalchemy.exc.IntegrityError

编辑:大写R