Disons que j'ai un module avec les éléments suivants :
def main():
pass
if __name__ == "__main__":
main()
Je veux écrire un test unitaire pour la moitié inférieure (j'aimerais atteindre une couverture de 100%). J'ai découvert le module intégré runpy qui exécute le __name__
, mais je ne sais pas comment se moquer ou vérifier que la fonction main() est appelée.
Voilà ce que j'ai essayé jusqu'à présent :
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()