Coverage for tests / test_tutorial / test_options_autocompletion / test_tutorial002.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("tutorial002_py39"),
18 pytest.param("tutorial002_an_py39"),
19 ],
20)
21def get_mod(request: pytest.FixtureRequest) -> ModuleType: 1abcdefgh
22 module_name = f"docs_src.options_autocompletion.{request.param}" 1abcdefgh
23 mod = importlib.import_module(module_name) 1abcdefgh
24 return mod 1abcdefgh
27def test_completion(mod: ModuleType): 1abcdefgh
28 file_name = Path(mod.__file__).name 1abcdefgh
29 result = subprocess.run( 1abcdefgh
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 ",
37 },
38 )
39 assert "Camila" in result.stdout 1abcdefgh
40 assert "Carlos" in result.stdout 1abcdefgh
41 assert "Sebastian" in result.stdout 1abcdefgh
44def test_1(mod: ModuleType): 1abcdefgh
45 result = runner.invoke(mod.app, ["--name", "Camila"]) 1abcdefgh
46 assert result.exit_code == 0 1abcdefgh
47 assert "Hello Camila" in result.output 1abcdefgh
50def test_script(mod: ModuleType): 1abcdefgh
51 result = subprocess.run( 1abcdefgh
52 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
53 capture_output=True,
54 encoding="utf-8",
55 )
56 assert "Usage" in result.stdout 1abcdefgh