Skip to content

Commit 6e84663

Browse files
radoeringneersighted
authored andcommitted
repository: according to PEP 440 pre-releases should be considered "if the only available version that satisfies the version specifier is a pre-release" (no special handling of "*" constraint)
1 parent cfdba43 commit 6e84663

File tree

3 files changed

+3
-12
lines changed

3 files changed

+3
-12
lines changed

src/poetry/repositories/repository.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ def find_packages(self, dependency: Dependency) -> list[Package]:
5050
and not allow_prereleases
5151
and not package.is_direct_origin()
5252
):
53-
if constraint.is_any():
54-
# we need this when all versions of the package are pre-releases
55-
ignored_pre_release_packages.append(package)
53+
ignored_pre_release_packages.append(package)
5654
continue
5755

5856
packages.append(package)

tests/repositories/test_legacy_repository.py

+1-8
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ def test_find_packages_no_prereleases() -> None:
213213

214214

215215
@pytest.mark.parametrize(
216-
["constraint", "count"], [("*", 1), (">=1", 0), (">=19.0.0a0", 1)]
216+
["constraint", "count"], [("*", 1), (">=1", 1), ("<=18", 0), (">=19.0.0a0", 1)]
217217
)
218218
def test_find_packages_only_prereleases(constraint: str, count: int) -> None:
219219
repo = MockRepository()
@@ -228,13 +228,6 @@ def test_find_packages_only_prereleases(constraint: str, count: int) -> None:
228228
assert package.source_url == repo.url
229229

230230

231-
def test_find_packages_only_prereleases_empty_when_not_any() -> None:
232-
repo = MockRepository()
233-
packages = repo.find_packages(Factory.create_dependency("black", ">=1"))
234-
235-
assert len(packages) == 0
236-
237-
238231
@pytest.mark.parametrize(
239232
["constraint", "expected"],
240233
[

tests/repositories/test_pypi_repository.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def test_find_packages_does_not_select_prereleases_if_not_allowed() -> None:
8787

8888

8989
@pytest.mark.parametrize(
90-
["constraint", "count"], [("*", 1), (">=1", 0), (">=19.0.0a0", 1)]
90+
["constraint", "count"], [("*", 1), (">=1", 1), ("<=18", 0), (">=19.0.0a0", 1)]
9191
)
9292
def test_find_packages_only_prereleases(constraint: str, count: int) -> None:
9393
repo = MockRepository()

0 commit comments

Comments
 (0)