Скажем, у меня есть модуль со следующим:
def main():
pass
if __name__ == "__main__":
main()
Я хочу написать unit test для нижней половины (я хотел бы получить 100% -ый охват). Я обнаружил встроенный модуль runpy, который выполняет механизм импорта /__name__
-setting, но я не могу понять, как насмехаться или иным образом проверять, что вызывается функция main().
Это то, что я пробовал до сих пор:
import runpy
import mock
@mock.patch('foobar.main')
def test_main(self, main):
runpy.run_module('foobar', run_name='__main__')
main.assert_called_once_with()