Coverage for tests / test_tutorial / test_arguments / test_help / test_tutorial002.py: 100%
28 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("tutorial002_py310"),
16 pytest.param("tutorial002_an_py310"),
17 ],
18)
19def get_mod(request: pytest.FixtureRequest) -> ModuleType: 1abcdefg
20 module_name = f"docs_src.arguments.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 "[OPTIONS] NAME" in result.output 1abcdefg
29 assert "Say hi to NAME very gently, like Dirk." in result.output 1abcdefg
30 assert "Arguments" in result.output 1abcdefg
31 assert "NAME" in result.output 1abcdefg
32 assert "The name of the user to greet" in result.output 1abcdefg
33 assert "[required]" in result.output 1abcdefg
36def test_call_arg(mod: ModuleType): 1abcdefg
37 result = runner.invoke(mod.app, ["Camila"]) 1abcdefg
38 assert result.exit_code == 0 1abcdefg
39 assert "Hello Camila" in result.output 1abcdefg
42def test_script(mod: ModuleType): 1abcdefg
43 result = subprocess.run( 1abcdefg
44 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
45 capture_output=True,
46 encoding="utf-8",
47 )
48 assert "Usage" in result.stdout 1abcdefg