Skip to content

Commit eddcf88

Browse files
committed
Fix failing tests
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 5648516 commit eddcf88

2 files changed

Lines changed: 53 additions & 5 deletions

File tree

src/python_inspector/resolution.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,17 @@ def is_valid_version(parsed_version, requirements, identifier, bad_versions):
5151
return True
5252

5353

54+
def get_python_version_from_env_tag(python_version: str):
55+
"""
56+
>>> assert get_python_version_from_env_tag("310") == "3.10"
57+
>>> assert get_python_version_from_env_tag("39") == "3.9"
58+
"""
59+
elements = list(python_version)
60+
elements.insert(1, ".")
61+
python_version = "".join(elements)
62+
return python_version
63+
64+
5465
class PythonInputProvider(AbstractProvider):
5566
def __init__(self, environment=None, repos=tuple()):
5667
self.environment = environment
@@ -212,11 +223,18 @@ def _iter_dependencies(self, candidate):
212223
)
213224

214225
for r in self.get_requirements_for_package(purl, candidate):
215-
print(r, r.marker)
216226
if r.marker is None:
217227
yield r
218228
else:
219-
if r.marker.evaluate({"extra": ""}):
229+
if r.marker.evaluate(
230+
{
231+
"extra": "",
232+
"python_version": get_python_version_from_env_tag(
233+
self.environment.python_version
234+
),
235+
"platform_system": self.environment.operating_system.capitalize(),
236+
}
237+
):
220238
yield r
221239

222240
def get_dependencies(self, candidate):

tests/test_resolution.py

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,34 @@ def test_get_resolved_dependencies_with_flask_and_python_310():
3434
assert as_list == [
3535
"pkg:pypi/click@8.1.3",
3636
"pkg:pypi/flask@2.1.2",
37-
"pkg:pypi/importlib-metadata@4.11.4",
3837
"pkg:pypi/itsdangerous@2.1.2",
3938
"pkg:pypi/jinja2@3.1.2",
4039
"pkg:pypi/markupsafe@2.1.1",
4140
"pkg:pypi/werkzeug@2.1.2",
42-
"pkg:pypi/zipp@3.8.0",
41+
]
42+
43+
44+
@pytest.mark.online
45+
def test_get_resolved_dependencies_with_flask_and_python_310_windows():
46+
req = [Requirement("flask==2.1.2")]
47+
results = get_resolved_dependencies(
48+
requirements=req,
49+
environment=Environment(
50+
python_version="310",
51+
operating_system="windows",
52+
),
53+
repos=[PYPI_PUBLIC_REPO],
54+
as_tree=False,
55+
)
56+
as_list = [p["package"] for p in results]
57+
assert as_list == [
58+
"pkg:pypi/click@8.1.3",
59+
"pkg:pypi/colorama@0.4.4",
60+
"pkg:pypi/flask@2.1.2",
61+
"pkg:pypi/itsdangerous@2.1.2",
62+
"pkg:pypi/jinja2@3.1.2",
63+
"pkg:pypi/markupsafe@2.1.1",
64+
"pkg:pypi/werkzeug@2.1.2",
4365
]
4466

4567

@@ -64,6 +86,7 @@ def test_get_resolved_dependencies_with_flask_and_python_36():
6486
"pkg:pypi/itsdangerous@2.1.2",
6587
"pkg:pypi/jinja2@3.1.2",
6688
"pkg:pypi/markupsafe@2.0.1",
89+
"pkg:pypi/typing-extensions@4.2.0",
6790
"pkg:pypi/werkzeug@2.1.2",
6891
"pkg:pypi/zipp@3.8.0",
6992
]
@@ -72,7 +95,14 @@ def test_get_resolved_dependencies_with_flask_and_python_36():
7295
@pytest.mark.online
7396
def test_get_resolved_dependencies_with_tilde_requirement_using_json_api():
7497
req = [Requirement("flask~=2.1.2")]
75-
results = get_resolved_dependencies(requirements=req, as_tree=False)
98+
results = get_resolved_dependencies(
99+
requirements=req,
100+
as_tree=False,
101+
environment=Environment(
102+
python_version="38",
103+
operating_system="linux",
104+
),
105+
)
76106
as_list = [p["package"] for p in results]
77107
assert as_list == [
78108
"pkg:pypi/click@8.1.3",

0 commit comments

Comments
 (0)