Coverage for tests/test_006_pydantic_types.py: 100%
21 statements
« prev ^ index » next coverage.py v7.6.0, created at 2024-08-02 17:11 +0200
« prev ^ index » next coverage.py v7.6.0, created at 2024-08-02 17:11 +0200
1import subprocess
2import sys
4import typer
5from typer.testing import CliRunner
7from examples import example_006_pydantic_types 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_valid_input():
21 result = runner.invoke(app, ["2", "https://google.com"])
22 assert "2 <class 'int'>" in result.output
23 assert "https://google.com/ <class 'pydantic_core._pydantic_core.Url'>" in result.output
26def test_invalid_url():
27 result = runner.invoke(app, ["2", "ftp://ftp.google.com"])
28 assert "Invalid value for url: URL scheme should be 'http' or 'https'" in result.output
31def test_script():
32 result = subprocess.run(
33 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"],
34 capture_output=True,
35 encoding="utf-8",
36 check=False,
37 )
38 assert "Usage" in result.stdout