78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
import pytest
|
||
|
|
||
|
from pipdeptree._cli import build_parser
|
||
|
|
||
|
|
||
|
def test_parser_default() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args([])
|
||
|
assert not args.json
|
||
|
assert args.output_format is None
|
||
|
|
||
|
|
||
|
def test_parser_j() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args(["-j"])
|
||
|
assert args.json
|
||
|
assert args.output_format is None
|
||
|
|
||
|
|
||
|
def test_parser_json() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args(["--json"])
|
||
|
assert args.json
|
||
|
assert args.output_format is None
|
||
|
|
||
|
|
||
|
def test_parser_json_tree() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args(["--json-tree"])
|
||
|
assert args.json_tree
|
||
|
assert not args.json
|
||
|
assert args.output_format is None
|
||
|
|
||
|
|
||
|
def test_parser_mermaid() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args(["--mermaid"])
|
||
|
assert args.mermaid
|
||
|
assert not args.json
|
||
|
assert args.output_format is None
|
||
|
|
||
|
|
||
|
def test_parser_pdf() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args(["--graph-output", "pdf"])
|
||
|
assert args.output_format == "pdf"
|
||
|
assert not args.json
|
||
|
|
||
|
|
||
|
def test_parser_svg() -> None:
|
||
|
parser = build_parser()
|
||
|
args = parser.parse_args(["--graph-output", "svg"])
|
||
|
assert args.output_format == "svg"
|
||
|
assert not args.json
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
("should_be_error", "depth_arg", "expected_value"),
|
||
|
[
|
||
|
(True, ["-d", "-1"], None),
|
||
|
(True, ["--depth", "string"], None),
|
||
|
(False, ["-d", "0"], 0),
|
||
|
(False, ["--depth", "8"], 8),
|
||
|
(False, [], float("inf")),
|
||
|
],
|
||
|
)
|
||
|
def test_parser_depth(should_be_error: bool, depth_arg: list[str], expected_value: None | int | float) -> None:
|
||
|
parser = build_parser()
|
||
|
|
||
|
if should_be_error:
|
||
|
with pytest.raises(SystemExit):
|
||
|
parser.parse_args(depth_arg)
|
||
|
else:
|
||
|
args = parser.parse_args(depth_arg)
|
||
|
assert args.depth == expected_value
|