ImportError: нет модуля с именем mock
Итак, я пытаюсь использовать unittest.mock, чтобы издеваться над некоторыми из моих методов в своих модульных тестах. Я:
from unittest.mock import MagicMock
f = open("data/static/mock_ffprobe_response")
subprocess.check_output = MagicMock(return_value=f.read())
f.close()
Но я получаю:
ImportError: No module named mock
Я пробовал:
pip install mock
Он все еще не работает.
Ответы
Ответ 1
unittest
- встроенный модуль; mock
- внешняя библиотека (до 3.3 байт, в любом случае). После установки mock
через pip install
вы импортируете его не с помощью
from unittest.mock import MagicMock
но
from mock import MagicMock
Изменить: mock
был включен в модуль unittest
(начиная с Python3.3) и может быть импортирован с помощью import unittest.mock
.
Ответ 2
Для Python 2.7:
Установить mock:
pip install mock
Затем в тестовом коде используйте этот импорт:
from mock import patch, MagicMock
Ответ 3
Для вашей версии я бы предложил перейти http://hg.python.org/cpython/file/default/Lib/unittest/mock.py и использовать этот источник в ваших интересах.