Coverage for tests / test_tutorial / test_arguments / test_help / test_tutorial007.py: 100%

25 statements  

« 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

5 

6import pytest 1abcdefg

7from typer.testing import CliRunner 1abcdefg

8 

9runner = CliRunner() 1abcdefg

10 

11 

12@pytest.fixture( 1abcdefg

13 name="mod", 

14 params=[ 

15 pytest.param("tutorial007_py310"), 

16 pytest.param("tutorial007_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

23 

24 

25def test_help(mod: ModuleType): 1abcdefg

26 result = runner.invoke(mod.app, ["--help"]) 1abcdefg

27 assert result.exit_code == 0 1abcdefg

28 assert "Say hi to NAME very gently, like Dirk." in result.output 1abcdefg

29 assert "Arguments" in result.output 1abcdefg

30 assert "Secondary Arguments" in result.output 1abcdefg

31 

32 

33def test_call_arg(mod: ModuleType): 1abcdefg

34 result = runner.invoke(mod.app, ["Camila"]) 1abcdefg

35 assert result.exit_code == 0 1abcdefg

36 assert "Hello Camila" in result.output 1abcdefg

37 

38 

39def test_script(mod: ModuleType): 1abcdefg

40 result = subprocess.run( 1abcdefg

41 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"], 

42 capture_output=True, 

43 encoding="utf-8", 

44 ) 

45 assert "Usage" in result.stdout 1abcdefg