import io import unittest from contextlib import redirect_stdout from hello_hut.cli import main def run(*argv): out = io.StringIO() with redirect_stdout(out): code = main(list(argv)) return code, out.getvalue() class CliTest(unittest.TestCase): def test_count(self): code, out = run("Ada", "--count", "3") self.assertEqual(code, 0) self.assertEqual(out.splitlines(), ["Hello, Ada!"] * 3) def test_count_must_be_positive(self): code, out = run("Ada", "--count", "0") self.assertEqual(code, 2) self.assertEqual(out, "")