Скажите, что я хочу, чтобы проверить этот модуль:Mock метод, который импортируется в модуль испытываемого
import osutils
def check_ip6(xml):
ib_output = osutils.call('iconfig ib0')
# process and validate ib_output (to be unit tested)
...
Этот метод зависит от окружающей среды, так как это делает системный вызов (который ожидает определенный сетевой интерфейс) , поэтому его нельзя вызывать на тестовой машине.
Я хочу написать модульный тест для этого метода, который проверяет, работает ли обработка ib_output, как и ожидалось. Поэтому я хочу высмеять osutils.call
и позволить ему просто вернуть testdata. Каков предпочтительный способ сделать это? Нужно ли мне делать издевательства или (обезьяна)?
Пример теста:
def test_ib6_check():
from migration import check_ib6
# how to mock os_utils.call used by the check_ib6-method?
assert check_ib6(test_xml) == True