Como testar ou simular o conteúdo “se __name__ == '__main__'”

Digo que tenho um módulo com o seguinte:

def main():
    pass

if __name__ == "__main__":
    main()

Quero escrever um teste de unidade para a metade inferior (gostaria de obter 100% de cobertura). Eu descobri o runpy módulo interno que executa a importação /__name__ecanismo de configuração @, mas não consigo descobrir como zombar ou verificar se oa Principal( função @ é chamada.

Isto é o que eu tentei até agora:

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()

questionAnswers(5)

yourAnswerToTheQuestion