Coverage for tests/test_004_argument_override.py: 100%
18 statements
« prev ^ index » next coverage.py v7.6.0, created at 2024-07-21 12:53 +0200
« prev ^ index » next coverage.py v7.6.0, created at 2024-07-21 12:53 +0200
1import subprocess
2import sys
4import typer
5from typer.testing import CliRunner
7from examples import example_004_argument_override 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 --user.name "John Doe"')
22 assert "1 <class 'int'>" in result.output
23 assert "id=2 name='John Doe' <class 'examples.example_004_argument_override.User'>" in result.output
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