检查assertRaises

时间:2015-06-29 12:31:50

标签: python python-unittest

我有以下代码(使用Django):

def test_validation(self):
    with assertRaises(ValidationError):
        <do something>

    with assertRaises(ValidationError):
        <do something else>

但是,两个ValidationError例外情况之间存在差异,因为我使用不同的code值引用它们:

raise ValidationError("Some message", code='first_code')

raise ValidationError("Another message", code='second_code')

是否可以检查引发的异常的属性,例如在我的情况下code属性?添加code='first_code'似乎没有效果。

1 个答案:

答案 0 :(得分:2)

来自python documentation

上下文管理器将捕获的异常对象存储在其exception属性中。如果打算对引发的异常执行附加检查,这可能很有用:

with self.assertRaises(SomeException) as cm:
    do_something()

the_exception = cm.exception
self.assertEqual(the_exception.error_code, 3)