У меня есть импорт в формате:
from a.b.c.d import x
в foo.py. Я тестирую bla.py, который напрямую не импортирует foo.py, но косвенно одним из его методов. Что-то вроде:
bla.m1 () -> bla2.m2 () -> foo.m3 ()
В моей тестовой среде пакет "a" недоступен, и я Я хотел бы посмеяться над тем, чтобы импорт не потерпел неудачу во время теста. Согласно Как смоделировать импорт , я мог бы сделать это, используя:
import sys
from unittest.mock import Mock
sys.modules['a.b.c.d'] = Mock()
Импорт работает в тестовом коде, если я использую Python 3, но завершается неудачно, когда Я использую Python 2.7 (и внешнюю библиотеку макетов). Почему? Как я могу заставить его работать в Python 2,7?