1
1
import json
2
2
from pathlib import Path
3
+ from typing import Any , Dict
3
4
4
5
import pytest
6
+ from packaging .utils import canonicalize_name
5
7
6
8
from ..lib import PipTestEnvironment , TestData
7
9
8
10
11
+ def _install_dict (report : Dict [str , Any ]) -> Dict [str , Any ]:
12
+ return {canonicalize_name (i ["metadata" ]["name" ]): i for i in report ["install" ]}
13
+
14
+
9
15
@pytest .mark .usefixtures ("with_wheel" )
10
16
def test_install_report_basic (
11
17
script : PipTestEnvironment , shared_data : TestData , tmp_path : Path
@@ -24,8 +30,7 @@ def test_install_report_basic(
24
30
report = json .loads (report_path .read_text ())
25
31
assert "install" in report
26
32
assert len (report ["install" ]) == 1
27
- assert "simplewheel" in report ["install" ]
28
- simplewheel_report = report ["install" ]["simplewheel" ]
33
+ simplewheel_report = _install_dict (report )["simplewheel" ]
29
34
assert simplewheel_report ["metadata" ]["name" ] == "simplewheel"
30
35
assert simplewheel_report ["requested" ] is True
31
36
assert simplewheel_report ["is_direct" ] is False
@@ -56,8 +61,8 @@ def test_install_report_dep(
56
61
)
57
62
report = json .loads (report_path .read_text ())
58
63
assert len (report ["install" ]) == 2
59
- assert report [ "install" ] ["require-simple" ]["requested" ] is True
60
- assert report [ "install" ] ["simple" ]["requested" ] is False
64
+ assert _install_dict ( report ) ["require-simple" ]["requested" ] is True
65
+ assert _install_dict ( report ) ["simple" ]["requested" ] is False
61
66
62
67
63
68
@pytest .mark .network
@@ -74,9 +79,10 @@ def test_install_report_index(script: PipTestEnvironment, tmp_path: Path) -> Non
74
79
)
75
80
report = json .loads (report_path .read_text ())
76
81
assert len (report ["install" ]) == 2
77
- assert report ["install" ]["paste" ]["requested" ] is True
78
- assert report ["install" ]["python-openid" ]["requested" ] is False
79
- paste_report = report ["install" ]["paste" ]
82
+ install_dict = _install_dict (report )
83
+ assert install_dict ["paste" ]["requested" ] is True
84
+ assert install_dict ["python-openid" ]["requested" ] is False
85
+ paste_report = install_dict ["paste" ]
80
86
assert paste_report ["download_info" ]["url" ].startswith (
81
87
"https://files.pythonhosted.org/"
82
88
)
@@ -108,7 +114,7 @@ def test_install_report_vcs_and_wheel_cache(
108
114
)
109
115
report = json .loads (report_path .read_text ())
110
116
assert len (report ["install" ]) == 1
111
- pip_test_package_report = report ["install" ]["pip-test-package" ]
117
+ pip_test_package_report = report ["install" ][0 ]
112
118
assert pip_test_package_report ["is_direct" ] is True
113
119
assert pip_test_package_report ["requested" ] is True
114
120
assert (
@@ -136,7 +142,7 @@ def test_install_report_vcs_and_wheel_cache(
136
142
assert "Using cached pip_test_package" in result .stdout
137
143
report = json .loads (report_path .read_text ())
138
144
assert len (report ["install" ]) == 1
139
- pip_test_package_report = report ["install" ]["pip-test-package" ]
145
+ pip_test_package_report = report ["install" ][0 ]
140
146
assert pip_test_package_report ["is_direct" ] is True
141
147
assert pip_test_package_report ["requested" ] is True
142
148
assert (
@@ -168,7 +174,7 @@ def test_install_report_vcs_editable(
168
174
)
169
175
report = json .loads (report_path .read_text ())
170
176
assert len (report ["install" ]) == 1
171
- pip_test_package_report = report ["install" ]["pip-test-package" ]
177
+ pip_test_package_report = report ["install" ][0 ]
172
178
assert pip_test_package_report ["is_direct" ] is True
173
179
assert pip_test_package_report ["download_info" ]["url" ].startswith ("file://" )
174
180
assert pip_test_package_report ["download_info" ]["url" ].endswith (
0 commit comments