Модуль A
включает import B
в своей верхней части. Однако в тестовых условиях я хотел бы mock B
в A
(mock A.B
) и полностью воздержаться от импорта B
.
На самом деле, B
специально не устанавливается в тестовую среду.
A
- это тестируемый модуль. Мне нужно импортировать A
со всей его функциональностью. B
- модуль, над которым мне нужно поиздеваться. Но как я могу высмеять B
внутри A
и остановить A
от импорта настоящего B
, если первое, что делает A
- импортирует B
?
(Причина, по которой B не установлен, в том, что я использую pypy для быстрого тестирования и, к сожалению, B пока не совместим с pypy.)
Как это можно сделать?