Coverage for tests/test_001_basic.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.6.0, created at 2024-07-21 12:12 +0200

1import subprocess 

2import sys 

3 

4import typer 

5from typer.testing import CliRunner 

6 

7from examples import example_001_basic as mod 

8 

9runner = CliRunner() 

10 

11app = typer.Typer() 

12app.command()(mod.main) 

13 

14 

15def test_help(): 

16 result = runner.invoke(app, ["--help"]) 

17 assert result.exit_code == 0 

18 

19 

20def test_parse_pydantic_model(): 

21 result = runner.invoke(app, ["1", "--user.id", "2", "--user.name", "John Doe"]) 

22 assert "1 <class 'int'>" in result.output 

23 assert "id=2 name='John Doe' <class 'examples.example_001_basic.User'>" in result.output 

24 

25 

26def test_script(): 

27 result = subprocess.run( 

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

29 capture_output=True, 

30 encoding="utf-8", 

31 check=False, 

32 ) 

33 assert "Usage" in result.stdout