1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
from __future__ import annotations
from typing import TYPE_CHECKING
import pytest
from pipdeptree._models.dag import PackageDAG
from pipdeptree._render.json_tree import render_json_tree
if TYPE_CHECKING:
from collections.abc import Callable, Iterator
from unittest.mock import Mock
from tests.our_types import MockGraph
@pytest.mark.parametrize(
("version_spec_tuple", "expected_version_spec"),
[
pytest.param((), "Any"),
pytest.param((">=", "2.0.0"), ">=2.0.0"),
],
)
def test_json_tree_given_req_package_with_version_spec(
mock_pkgs: Callable[[MockGraph], Iterator[Mock]],
version_spec_tuple: tuple[str, str],
expected_version_spec: str,
capsys: pytest.CaptureFixture[str],
) -> None:
graph: MockGraph = {
("a", "1.2.3"): [("b", [version_spec_tuple])],
("b", "2.2.0"): [],
}
package_dag = PackageDAG.from_pkgs(list(mock_pkgs(graph)))
render_json_tree(package_dag)
captured = capsys.readouterr()
assert captured.out.find(expected_version_spec) != -1
|