cookiecutterによって生成されたプロジェクトが複数の呼び出しパターンでどのように動作するかをテストしたいと考えています。
次の生成されたプロジェクトが与えられた場合
proj/
proj/
__init__.py
__main__.py
の内容__init__.py
:
def func():
pass
の内容__main__.py
:
from proj import func
def main():
func()
if __name__ == '__main__':
main()
( の問題について読みましたが__main__.__spec__
、これはこの質問の内容ではありません。実際、これらの問題の回避策を TDD でテストしたいと思います)
ここで、生成されたプロジェクトの構造と場所がわかっているテストを作成します (たとえば、pytest フィクスチャを介して利用できます)。
test_run_proj_script():
"""Test behavior of ``python3 ./proj``"""
pass # how to run this?
test_run_proj_module():
"""Test behavior of ``python3 -m ./proj``"""
pass # how to run this?
おまけ: sys.argv
?の値を注入する