2013-12-08 3 views
0

Я тестирую код python, и когда я запускаю nosetests с указанным файлом, все хорошо, но когда я хочу запустить все в папке, некоторые из тестов (большинство) потерпеть неудачу.Nosetests сбой при отсутствии файла

Я использую фиктивный, UnitTest и нос с питона 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

Извините, если он не был достаточно осязательным.

+0

Добро пожаловать в stackoverflow. Можете ли вы показать код? что не удается, какое исключение ... Пожалуйста, улучшите свой вопрос. – slfan

+0

Я сделал редактирование. Спасибо за ваш ввод – trobert2

+0

Большое вам спасибо! Патч решает все. Когда я использовал MagicMock, я думал, что он будет работать только в рамках теста. Я был неправ, спасибо. – trobert2

ответ

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) 
Смежные вопросы