~reviewer/hello-hut

ref: 595fc0f47efad13fc9690626c0920249545bcdb1 hello-hut/tests/test_cli.py -rw-r--r-- 934 bytes
595fc0f4 — Noor Haddad docs: document --lang 22 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import io
import json
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, "")

    def test_json(self):
        code, out = run("Ada", "--format", "json")
        self.assertEqual(code, 0)
        self.assertEqual(json.loads(out), {"greeting": "Hello, Ada!", "name": "Ada"})

    def test_lang(self):
        code, out = run("Ada", "--lang", "es")
        self.assertEqual(out.strip(), "Hola, Ada!")