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