Skip to content

Commit cdf4225

Browse files
authored
Allow empty string as version for find_compatible_in_house (#2430)
The empty string is used in several locations to indicate the newest version. Interpret it as such instead of rejecting it as invalid.
1 parent 3ed75b2 commit cdf4225

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

docs/changelog/2429.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix fallback handling of downloading wheels for bundled packages - by :user:`schaap`.

src/virtualenv/seed/wheels/acquire.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def _find_downloaded_wheel(distribution, version_spec, for_py_version, to_folder
8383
def find_compatible_in_house(distribution, version_spec, for_py_version, in_folder):
8484
wheels = discover_wheels(in_folder, distribution, None, for_py_version)
8585
start, end = 0, len(wheels)
86-
if version_spec is not None:
86+
if version_spec is not None and version_spec != "":
8787
if version_spec.startswith("<"):
8888
from_pos, op = 1, lt
8989
elif version_spec.startswith("=="):

tests/unit/seed/wheels/test_acquire_find_wheel.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@
44
from virtualenv.seed.wheels.embed import BUNDLE_FOLDER, MAX, get_embed_wheel
55

66

7-
def test_find_latest(for_py_version):
7+
def test_find_latest_none(for_py_version):
88
result = find_compatible_in_house("setuptools", None, for_py_version, BUNDLE_FOLDER)
99
expected = get_embed_wheel("setuptools", for_py_version)
1010
assert result.path == expected.path
1111

1212

13+
def test_find_latest_string(for_py_version):
14+
result = find_compatible_in_house("setuptools", "", for_py_version, BUNDLE_FOLDER)
15+
expected = get_embed_wheel("setuptools", for_py_version)
16+
assert result.path == expected.path
17+
18+
1319
def test_find_exact(for_py_version):
1420
expected = get_embed_wheel("setuptools", for_py_version)
1521
result = find_compatible_in_house("setuptools", f"=={expected.version}", for_py_version, BUNDLE_FOLDER)

0 commit comments

Comments
 (0)