У меня есть метод, который обращается к внешнему API и извлекает некоторый контент, затем он выполняет некоторую логику и продолжает работу. Проблема в том, что во время тестирования я не хочу, чтобы мои тестовые примеры запускали этот внешний API, но я хочу, чтобы он высмеивал ответ. Пример
def create_animals(candidate):
if ExternalService.get_candidate_validity(candidate):
print('Things are good, go ahead')
#creates the animal objects etc....
Но ExternalService.get_candidate_validity
обращается к API, который я хочу издеваться. Я знаю, что могу издеваться над экземплярами, если это так:
get_candidate_validity_value = {'response': True}
c = ExternalService('someparamsthatineed')
c.get_candidate_validity = MagicMock(return_value=get_candidate_validity_value)
Но как мне обрабатывать случаи, когда экземпляр класса создается в методе, который я в итоге вызываю для проверки?