Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

download.py のテストコードを書く #158

Open
6 of 10 tasks
ftnext opened this issue Jan 23, 2021 · 1 comment · May be fixed by #159
Open
6 of 10 tasks

download.py のテストコードを書く #158

ftnext opened this issue Jan 23, 2021 · 1 comment · May be fixed by #159

Comments

@ftnext
Copy link

ftnext commented Jan 23, 2021

#31 をファイル単位で進めていきます。

download.py は mynumbercard_data の下のモジュールには依存しないので、テストコードを書く量は少ないと見積もり、選択しました。
テスト環境の設定と合わせて実施します

  • リポジトリルートにtestsディレクトリ作成
  • if __name__ == "__main__":に続くブロックを関数化してテスト追加
    • PDFのリンクだけのパターン、保存されているJSONなし(←JSONファイルの更新発生パターン)
    • PDFのリンクだけのパターン、保存されているJSONあり(←JSONファイルの更新発生しないパターン)
    • PDFとExcelの2つのリンクがあるパターン、保存されているJSONなし
    • PDFとExcelの2つのリンクがあるパターン、保存されているJSONあり
    • --all オプションを指定
  • getFileIDのテスト追加
  • loadPDFのテスト追加
  • (できたらやる)CIでテスト実行するように設定
@ftnext ftnext linked a pull request Jan 23, 2021 that will close this issue
@ftnext
Copy link
Author

ftnext commented Jan 23, 2021

テストの実行について

Pipfileに明示されているpytestを使うことにしました。

pytest = "*"

unittestに慣れているので、簡単なテストはpytestで、モックを多く使う複雑なテストはunittestで書いています

pytestコマンドだと以下のImportErrorになり、解決方法が見つけられていないため、代わりのコマンドpython -m pytest tests/でテストを実行しています
ref: https://stackoverflow.com/a/34140498

__________ ERROR collecting tests/mynumbercard_data/test_download.py ___________
ImportError while importing test module '.../tests/mynumbercard_data/test_download.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/mynumbercard_data/test_download.py:10: in <module>
    from mynumbercard_data import download
E   ImportError: cannot import name 'download' from 'mynumbercard_data' (unknown location)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant