Подтвердить что ты не робот

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

Он все еще не работает.

4b9b3361

Ответ 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