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