Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion openapi_spec_validator/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from jsonschema.exceptions import ValidationError
from jsonschema.exceptions import best_match

from openapi_spec_validator import __version__
from openapi_spec_validator.readers import read_from_filename
from openapi_spec_validator.readers import read_from_stdin
from openapi_spec_validator.shortcuts import validate
Expand Down Expand Up @@ -51,7 +52,7 @@ def print_validationerror(


def main(args: Sequence[str] | None = None) -> None:
parser = ArgumentParser()
parser = ArgumentParser(prog="openapi-spec-validator")
parser.add_argument(
"file",
nargs="+",
Expand All @@ -72,6 +73,11 @@ def main(args: Sequence[str] | None = None) -> None:
metavar="{detect,2.0,3.0,3.1}",
help="OpenAPI schema version (default: detect).",
)
parser.add_argument(
"--version",
action="version",
version=f"%(prog)s {__version__}",
)
args_parsed = parser.parse_args(args)

for filename in args_parsed.file:
Expand Down
11 changes: 11 additions & 0 deletions tests/integration/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

import pytest

from openapi_spec_validator import __version__
from openapi_spec_validator.__main__ import main


Expand Down Expand Up @@ -190,3 +191,13 @@ def test_schema_stdin(capsys):
out, err = capsys.readouterr()
assert not err
assert "stdin: OK\n" in out


def test_version(capsys):
"""Test --version flag outputs correct version."""
testargs = ["--version"]
with pytest.raises(SystemExit):
main(testargs)
out, err = capsys.readouterr()
assert not err
assert out.strip() == f"openapi-spec-validator {__version__}"