Python の click ライブラリの CliRunner().invoke() が失敗するので2021年10月23日 12時28分13秒

click は Python でコマンドオプションを処理するのに使えるライブラリ。 Python 組み込みのライブラリの処理も悪くないとは思う。

pytest で CliRunner を使ってのテストがあったのだが、特定の環境だけでテストが失敗する事があって、悩んだ。この invoke 関数に catch_exceptions=False を渡すと、Exception が吸収されずにエラーが直接見られるようになる。

runner = CliRunner()
runner.invoke(main, args=['hello'], catch_exceptions=False)


なお、特定の環境だけで起きる問題の原因は mkdir の失敗によるものだった。

PermissionError: [Errno 13] Permission denied: '/tmp/logs'