Coverage for tests/test_002_nested_models.py: 100%
17 statements
« prev ^ index » next coverage.py v7.6.0, created at 2024-08-01 16:55 +0200
« prev ^ index » next coverage.py v7.6.0, created at 2024-08-01 16:55 +0200
1import subprocess
2import sys
4import typer
5from typer.testing import CliRunner
7from examples import example_002_nested_models 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(
22 app,
23 [
24 "--person.name",
25 "Jeff",
26 "--person.pet.name",
27 "Lassie",
28 "--person.pet.species",
29 "dog",
30 ],
31 )
32 assert (
33 "name='Jeff' age=None pet=Pet(name='Lassie', species='dog') <class 'examples.example_002_nested_models.Person'>"
34 in result.output
35 )
38def test_script():
39 result = subprocess.run(
40 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
41 capture_output=True,
42 encoding="utf-8",
43 check=False,
44 )
45 assert "Usage" in result.stdout