diff --git a/src/poetry/core/semver/version.py b/src/poetry/core/semver/version.py index eacc3b592..f3b71ef03 100644 --- a/src/poetry/core/semver/version.py +++ b/src/poetry/core/semver/version.py @@ -49,9 +49,6 @@ def next_breaking(self) -> "Version": return self.stable.next_major() - def first_pre_release(self) -> "Version": - return self.__class__(release=self.release, pre=ReleaseTag("alpha")) - @property def min(self) -> "Version": return self diff --git a/src/poetry/core/semver/version_range.py b/src/poetry/core/semver/version_range.py index 999fcac8a..11cb0950a 100644 --- a/src/poetry/core/semver/version_range.py +++ b/src/poetry/core/semver/version_range.py @@ -30,7 +30,7 @@ def __init__( and not full_max.is_postrelease() and (min is None or min.is_stable() or min.release != full_max.release) ): - full_max = full_max.first_pre_release() + full_max = full_max.first_prerelease() self._min = min self._max = max diff --git a/tests/semver/test_helpers.py b/tests/semver/test_helpers.py index 342724bb1..457ca0e38 100644 --- a/tests/semver/test_helpers.py +++ b/tests/semver/test_helpers.py @@ -275,6 +275,33 @@ def test_parse_constraint_multi(input: str): ) +@pytest.mark.parametrize( + "input, output", + [ + ( + ">1!2,<=2!3", + VersionRange( + Version.from_parts(2, 0, 0, epoch=1), + Version.from_parts(3, 0, 0, epoch=2), + include_min=False, + include_max=True, + ), + ), + ( + ">= 1!2,<2!3", + VersionRange( + Version.from_parts(2, 0, 0, epoch=1), + Version.from_parts(3, 0, 0, epoch=2), + include_min=True, + include_max=False, + ), + ), + ], +) +def test_parse_constraint_multi_with_epochs(input: str, output: VersionRange): + assert parse_constraint(input) == output + + @pytest.mark.parametrize( "input", [">=2.7,!=3.0.*,!=3.1.*", ">=2.7, !=3.0.*, !=3.1.*", ">= 2.7, != 3.0.*, != 3.1.*"],