Coverage for tests/test_003_annotated_argument.py: 100%
22 statements
« prev ^ index » next coverage.py v7.6.0, created at 2024-08-01 16:52 +0200
« prev ^ index » next coverage.py v7.6.0, created at 2024-08-01 16:52 +0200
1import subprocess
2import sys
4import typer
5from typer.testing import CliRunner
7from examples import example_003_annotated_argument as mod
9runner = CliRunner()
11app = typer.Typer()
12app.command()(mod.main)
15def test_help():
16 result = runner.invoke(app, ["--help"])
17 assert result.exit_code == 0
20def test_parse_pydantic_model():
21 result = runner.invoke(app, '--num 1 2 "John Doe"')
22 assert "1 <class 'int'>" in result.output
23 assert "id=2 name='John Doe' <class 'examples.example_003_annotated_argument.User'>" in result.output
26def test_wrong_order():
27 result = runner.invoke(app, '--num 1 "John Doe" 2')
28 assert result.exit_code == 2
29 assert "Usage" in result.output
32def test_script():
33 result = subprocess.run(
34 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
35 capture_output=True,
36 encoding="utf-8",
37 check=False,
38 )
39 assert "Usage" in result.stdout