Скажите, что я хочу проверить этот модуль:
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
и позволить ему просто вернуть тестовые данные. Каков предпочтительный способ сделать это? Должен ли я делать насмешки или (обезьяньи) исправления?
Пример теста:
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