How to write the UnitTest with stdin at Pytest
If you want to write UnitTest when using stdin
in Python.
Pytest provide setattr
function in monkeypatch
from io import StringIO
import sys
def divide():
input = sys.stdin.readline
return list(input())
def gather():
input = sys.stdin.readline
return sum(list(map(int, input().split())))
def test_divide(monkeypatch):
monkeypatch.setattr('sys.stdin', StringIO('abc'))
assert divide() == ['a', 'b', 'c']
def test_gather(monkeypatch):
monkeypatch.setattr('sys.stdin', StringIO('1 2 3'))
assert gather() == 6
Reference
関連しているかもしれない記事
- 自走プログラマーを読み終えた
- Pythonの関数のデフォルト引数はmutable(上書きされる)
- 遅すぎる `pandas.read_gbq` を使わずに、Google BigQueryから高速にデータを読み込む
- Jupyter Notebook上にTensorboard を わずか2行で表示させる
- How to concat image using skimage
📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。
このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。
このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。