Coverage for tests / test_tutorial / test_options / test_help / test_tutorial001.py: 100%
34 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-02-09 12:36 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-02-09 12:36 +0000
1import importlib 1abcdefgh
2import subprocess 1abcdefgh
3import sys 1abcdefgh
4from types import ModuleType 1abcdefgh
6import pytest 1abcdefgh
7from typer.testing import CliRunner 1abcdefgh
9runner = CliRunner() 1abcdefgh
12@pytest.fixture( 1abcdefgh
13 name="mod",
14 params=[
15 pytest.param("tutorial001_py39"),
16 pytest.param("tutorial001_an_py39"),
17 ],
18)
19def get_mod(request: pytest.FixtureRequest) -> ModuleType: 1abcdefgh
20 module_name = f"docs_src.options.help.{request.param}" 1abcdefgh
21 mod = importlib.import_module(module_name) 1abcdefgh
22 return mod 1abcdefgh
25def test_help(mod: ModuleType): 1abcdefgh
26 result = runner.invoke(mod.app, ["--help"]) 1abcdefgh
27 assert result.exit_code == 0 1abcdefgh
28 assert "Say hi to NAME, optionally with a --lastname." in result.output 1abcdefgh
29 assert "If --formal is used, say hi very formally." in result.output 1abcdefgh
30 assert "Last name of person to greet." in result.output 1abcdefgh
31 assert "Say hi formally." in result.output 1abcdefgh
34def test_1(mod: ModuleType): 1abcdefgh
35 result = runner.invoke(mod.app, ["Camila"]) 1abcdefgh
36 assert result.exit_code == 0 1abcdefgh
37 assert "Hello Camila" in result.output 1abcdefgh
40def test_option_lastname(mod: ModuleType): 1abcdefgh
41 result = runner.invoke(mod.app, ["Camila", "--lastname", "Gutiérrez"]) 1abcdefgh
42 assert result.exit_code == 0 1abcdefgh
43 assert "Hello Camila Gutiérrez" in result.output 1abcdefgh
46def test_formal(mod: ModuleType): 1abcdefgh
47 result = runner.invoke(mod.app, ["Camila", "--lastname", "Gutiérrez", "--formal"]) 1abcdefgh
48 assert result.exit_code == 0 1abcdefgh
49 assert "Good day Ms. Camila Gutiérrez." in result.output 1abcdefgh
52def test_script(mod: ModuleType): 1abcdefgh
53 result = subprocess.run( 1abcdefgh
54 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
55 capture_output=True,
56 encoding="utf-8",
57 )
58 assert "Usage" in result.stdout 1abcdefgh