Coverage for tests / test_tutorial / test_options_autocompletion / test_tutorial004_tutorial005.py: 100%
27 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 os 1abcdefgh
3import subprocess 1abcdefgh
4import sys 1abcdefgh
5from pathlib import Path 1abcdefgh
6from types import ModuleType 1abcdefgh
8import pytest 1abcdefgh
9from typer.testing import CliRunner 1abcdefgh
11runner = CliRunner() 1abcdefgh
14@pytest.fixture( 1abcdefgh
15 name="mod",
16 params=[
17 pytest.param("tutorial004_py39"),
18 pytest.param("tutorial004_an_py39"),
19 pytest.param("tutorial005_py39"),
20 pytest.param("tutorial005_an_py39"),
21 ],
22)
23def get_mod(request: pytest.FixtureRequest) -> ModuleType: 1abcdefgh
24 module_name = f"docs_src.options_autocompletion.{request.param}" 1abcdefgh
25 mod = importlib.import_module(module_name) 1abcdefgh
26 return mod 1abcdefgh
29def test_completion(mod: ModuleType): 1abcdefgh
30 file_name = Path(mod.__file__).name 1abcdefgh
31 result = subprocess.run( 1abcdefgh
32 [sys.executable, "-m", "coverage", "run", mod.__file__, " "],
33 capture_output=True,
34 encoding="utf-8",
35 env={
36 **os.environ,
37 f"_{file_name.upper()}_COMPLETE": "complete_zsh",
38 "_TYPER_COMPLETE_ARGS": f"{file_name} --name ",
39 },
40 )
41 assert '"Camila":"The reader of books."' in result.stdout 1abcdefgh
42 assert '"Carlos":"The writer of scripts."' in result.stdout 1abcdefgh
43 assert '"Sebastian":"The type hints guy."' in result.stdout 1abcdefgh
46def test_1(mod: ModuleType): 1abcdefgh
47 result = runner.invoke(mod.app, ["--name", "Camila"]) 1abcdefgh
48 assert result.exit_code == 0 1abcdefgh
49 assert "Hello Camila" 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