やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

GitHubアップローダ機能テスト:リポジトリ名編集後に編集しようとするとエラーになる

ディレクトリ名の変更によりパス参照できなくなるから。

前回まで

http://ytyaru.hatenablog.com/entry/2018/02/25/000000

今回

2FA有効アカウントでやってみる。

バグ

リポジトリ名を変更後にもう一度編集しようとするとエラー

Response.end---------------------
Traceback (most recent call last):
  File "GitHubUploader.py", line 77, in <module>
    main.Run()
  File "GitHubUploader.py", line 72, in Run
    main.Run()
  File "/tmp/GitHub.Uploader.UnittestAfter.OperationCheck.Callable.201705052135/cui/uploader/Main.py", line 27, in Run
  File "/tmp/GitHub.Uploader.UnittestAfter.OperationCheck.Callable.201705052135/cui/uploader/Main.py", line 73, in __Commit
  File "/tmp/GitHub.Uploader.UnittestAfter.OperationCheck.Callable.201705052135/cui/uploader/Main.py", line 113, in __ConfirmEdit
  File "/tmp/GitHub.Uploader.UnittestAfter.OperationCheck.Callable.201705052135/cui/uploader/command/repository/Editor.py", line 20, in Edit
  File "/tmp/GitHub.Uploader.UnittestAfter.OperationCheck.Callable.201705052135/cui/uploader/command/repository/Editor.py", line 28, in __EditDb
TypeError: 'NoneType' object is not subscriptable

原因

じつはリポジトリ名にあわせてディレクトリ名も変更する。そのせいでターミナルで実行した時点のディレクトリ名とは別のパスになってしまいファイル参照できなくなる。

解決案

ターミナル、bashPython実行のセッションを改める。

  • 一度Python実行を終了する
  • cd ../{変更したディレクトリ名}を実行する
  • もう一度Python実行する

ただ、これをプログラムに組み込むと自分自身を再帰的に実行することになる。できるかどうかも不明だし、できても終了するまですべてのメモリ解放がされなさそう。あまりよろしくない方法に思える。どうするのがいいのか…。

回避案

名前を変更した時はユーザが手動で上記を行うようにする。上記手順でエラーになることに変わりないが。

所感

回避案が妥当か。スッキリ解決できなかった。まあいいか。記録だけしてスルー。