Coverage for tests / test_tutorial / test_options_autocompletion / test_tutorial003.py: 100%
33 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 os 1abcdefg
3import subprocess 1abcdefg
4import sys 1abcdefg
5from pathlib import Path 1abcdefg
6from types import ModuleType 1abcdefg
8import pytest 1abcdefg
9from typer.testing import CliRunner 1abcdefg
11runner = CliRunner() 1abcdefg
14@pytest.fixture( 1abcdefg
15 name="mod",
16 params=[
17 pytest.param("tutorial003_py310"),
18 pytest.param("tutorial003_an_py310"),
19 ],
20)
21def get_mod(request: pytest.FixtureRequest) -> ModuleType: 1abcdefg
22 module_name = f"docs_src.options_autocompletion.{request.param}" 1abcdefg
23 mod = importlib.import_module(module_name) 1abcdefg
24 return mod 1abcdefg
27def test_completion_zsh(mod: ModuleType): 1abcdefg
28 file_name = Path(mod.__file__).name 1abcdefg
29 result = subprocess.run( 1abcdefg
30 [sys.executable, "-m", "coverage", "run", mod.__file__, " "],
31 capture_output=True,
32 encoding="utf-8",
33 env={
34 **os.environ,
35 f"_{file_name.upper()}_COMPLETE": "complete_zsh",
36 "_TYPER_COMPLETE_ARGS": f"{file_name} --name Seb",
37 },
38 )
39 assert "Camila" not in result.stdout 1abcdefg
40 assert "Carlos" not in result.stdout 1abcdefg
41 assert "Sebastian" in result.stdout 1abcdefg
44def test_completion_powershell(mod: ModuleType): 1abcdefg
45 file_name = Path(mod.__file__).name 1abcdefg
46 result = subprocess.run( 1abcdefg
47 [sys.executable, "-m", "coverage", "run", mod.__file__, " "],
48 capture_output=True,
49 encoding="utf-8",
50 env={
51 **os.environ,
52 f"_{file_name.upper()}_COMPLETE": "complete_powershell",
53 "_TYPER_COMPLETE_ARGS": f"{file_name} --name Seb",
54 "_TYPER_COMPLETE_WORD_TO_COMPLETE": "Seb",
55 },
56 )
57 assert "Camila" not in result.stdout 1abcdefg
58 assert "Carlos" not in result.stdout 1abcdefg
59 assert "Sebastian" in result.stdout 1abcdefg
62def test_1(mod: ModuleType): 1abcdefg
63 result = runner.invoke(mod.app, ["--name", "Camila"]) 1abcdefg
64 assert result.exit_code == 0 1abcdefg
65 assert "Hello Camila" in result.output 1abcdefg
68def test_script(mod: ModuleType): 1abcdefg
69 result = subprocess.run( 1abcdefg
70 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
71 capture_output=True,
72 encoding="utf-8",
73 )
74 assert "Usage" in result.stdout 1abcdefg