使用pytest.raises检查自定义异常属性

时间:2018-09-05 22:41:30

标签: python unit-testing exception pytest

class CustomException(ValueError):
  def __init__(self, foo, bar):
    self.foo = foo
    self.bar = bar

我有一个与上述异常的类。函数使用foobar引发错误,以向调用类提供有关异常的一些额外信息。

我正在尝试测试这种行为:

with pytest.raises(CustomException) as ce:
  func_that_raises(broken_args)
assert ce.foo == 'blah'
assert not ce.bar  # if `bar` is expected to be a boolean

但是,ce是py.test给我的ExceptionInfo的实例,而 not 不是CustomException的实例。有什么方法可以保留和检查所引发的原始异常?

1 个答案:

答案 0 :(得分:2)

实际的异常对象可作为std::vector<int>使用,因此您的断言必须写为:

ce.value