如何将sqlalchemy.exc.IntegrityError添加为模拟对象的副作用?

时间:2016-10-05 08:13:28

标签: python unit-testing python-mock

我正在测试一个需要模拟对象的函数。此对象可能引发IntegrityError,因此我将此错误作为副作用添加到模拟对象

def test_(self, mock_object):
        mock_object.side_effect = IntegrityError

这在某种程度上是不正确的,因为它引发了__init__() takes at least 4 arguments (1 given)的异常 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

只需构建一个提升完整性错误的单行函数,并将其作为副作用添加:

x = Mock()

def b():
    raise IntegrityError('Mock', 'mock', 'mock')

x.side_effect = b
x()