没有指定文件时,Nosetests失败

时间:2013-12-08 10:16:36

标签: python unit-testing mocking nose

我正在测试一些python代码,当我使用指定的文件运行nosetests时,一切都很好,但是当我想运行文件夹中的所有内容时,一些测试(大多数)都会失败。

我正在使用mock,unittest和nose with python 2.7

谢谢

例如:

AssertionError: Expected call: mock('fake/path')
Not called

关于此测试

def test_vm_exists(self):
    fake_path = 'fake/path'
    os.path.exists = mock.MagicMock()
    os.path.exists.return_value = True

    response = self._VixConnection.vm_exists(fake_path)

    os.path.exists.assert_called_with(fake_path)
    self.assertEqual(response, True)

这是回购: https://github.com/trobert2/nova-vix-driver/tree/unittests/vix/tests

很抱歉,如果说它不够具有描述性。

1 个答案:

答案 0 :(得分:0)

您实际上并没有嘲笑实际代码所使用的os.path.exists。请尝试以下方法:

@mock.patch('os.path.exists')
def test_vm_exists(self, mock_exists):
    mock_exists.return_value = True
    fake_path = 'fake/path'

    response = self._VixConnection.vm_exists(fake_path)

    mock_exists.assert_called_with(fake_path)
    self.assertEqual(response, True)