如何使mock.mock_open引发IOError?

2024-04-26 14:52:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要测试一个调用open的实例方法。在第一个测试用例中,我将mock.mock_open设置为按预期返回字符串。这很管用。

但是,我还需要测试从这个函数抛出IOError的情况。如何使mock.mock_open引发任意异常?

到目前为止,这是我的方法:

@mock.patch.object(somemodule, 'generateDefaultKey')
def test_load_privatekey(self, genkey)
    mo = mock.mock_open(read_data=self.key)
    mo.side_effect = IOError
    with mock.patch('__main__.open', mo, create=True):
        self.controller.loadPrivkey()

    self.assertTrue(genkey.called, 'Key failed to regenerate')

Tags: 实例方法函数字符串selfobject情况测试用例