Shunya Ueta

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

---

関連しているかもしれない記事


📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。

このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。

このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。

#python #pytest