|
10 | 10 | from collections.abc import Iterator |
11 | 11 | from unittest.mock import Mock |
12 | 12 |
|
| 13 | + import pytest |
| 14 | + |
13 | 15 | from tests.our_types import MockGraph |
14 | 16 |
|
15 | 17 |
|
16 | | -def test_render_mermaid(example_dag: PackageDAG, randomized_example_dag: PackageDAG) -> None: |
| 18 | +def test_render_mermaid( |
| 19 | + example_dag: PackageDAG, randomized_example_dag: PackageDAG, capsys: pytest.CaptureFixture[str] |
| 20 | +) -> None: |
17 | 21 | """Check both the sorted and randomized package tree produces the same sorted Mermaid output. |
18 | 22 |
|
19 | 23 | Rendering a reverse dependency tree should produce the same set of nodes. Edges should have the same version spec |
@@ -70,22 +74,33 @@ def test_render_mermaid(example_dag: PackageDAG, randomized_example_dag: Package |
70 | 74 | ).rstrip() |
71 | 75 |
|
72 | 76 | for package_tree in (example_dag, randomized_example_dag): |
73 | | - output = render_mermaid(package_tree) |
74 | | - assert output.rstrip() == nodes + dependency_edges |
75 | | - reversed_output = render_mermaid(package_tree.reverse()) |
76 | | - assert reversed_output.rstrip() == nodes + reverse_dependency_edges |
| 77 | + render_mermaid(package_tree) |
| 78 | + output = capsys.readouterr() |
| 79 | + assert output.out.rstrip() == nodes + dependency_edges |
| 80 | + |
| 81 | + render_mermaid(package_tree.reverse()) |
| 82 | + output = capsys.readouterr() |
| 83 | + assert output.out.rstrip() == nodes + reverse_dependency_edges |
77 | 84 |
|
78 | 85 |
|
79 | | -def test_mermaid_reserved_ids(mock_pkgs: Callable[[MockGraph], Iterator[Mock]]) -> None: |
| 86 | +def test_mermaid_reserved_ids( |
| 87 | + mock_pkgs: Callable[[MockGraph], Iterator[Mock]], capsys: pytest.CaptureFixture[str] |
| 88 | +) -> None: |
80 | 89 | graph = {("click", "3.4.0"): [("click-extra", [(">=", "2.0.0")])]} |
81 | 90 | package_tree = PackageDAG.from_pkgs(list(mock_pkgs(graph))) |
82 | | - output = render_mermaid(package_tree) |
83 | | - assert output == dedent( |
84 | | - """\ |
| 91 | + |
| 92 | + render_mermaid(package_tree) |
| 93 | + |
| 94 | + output = capsys.readouterr() |
| 95 | + assert ( |
| 96 | + output.out.rstrip() |
| 97 | + == dedent( |
| 98 | + """\ |
85 | 99 | flowchart TD |
86 | 100 | classDef missing stroke-dasharray: 5 |
87 | 101 | click-extra["click-extra\\n(missing)"]:::missing |
88 | 102 | click_0["click\\n3.4.0"] |
89 | 103 | click_0 -.-> click-extra |
90 | 104 | """, |
| 105 | + ).rstrip() |
91 | 106 | ) |
0 commit comments