From 864f7c6c339b913318d5d604fd0e2d4a477481f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Eustace?= Date: Wed, 15 Sep 2021 21:59:57 +0200 Subject: [PATCH] Fix parsing of caret constraint with leading zero --- poetry/core/semver/version.py | 2 +- tests/semver/test_helpers.py | 2 +- tests/semver/test_parse_constraint.py | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/poetry/core/semver/version.py b/poetry/core/semver/version.py index d3ae4294a..64ae8fe43 100644 --- a/poetry/core/semver/version.py +++ b/poetry/core/semver/version.py @@ -37,7 +37,7 @@ def stable(self) -> "Version": def next_breaking(self) -> "Version": if self.major == 0: - if self.minor != 0: + if self.minor is not None and self.minor != 0: return self.next_minor() if self.precision == 1: diff --git a/tests/semver/test_helpers.py b/tests/semver/test_helpers.py index 03a285735..be8fc4aa1 100644 --- a/tests/semver/test_helpers.py +++ b/tests/semver/test_helpers.py @@ -191,7 +191,7 @@ def test_parse_constraint_tilde(input, constraint): Version.from_parts(1, 0, 0), Version.from_parts(2, 0, 0), True ), ), - ("^0", VersionRange(Version.from_parts(0), Version.from_parts(0, 1), True)), + ("^0", VersionRange(Version.from_parts(0), Version.from_parts(1), True)), ( "^0.0", VersionRange( diff --git a/tests/semver/test_parse_constraint.py b/tests/semver/test_parse_constraint.py index 5f9561612..0bd999f92 100644 --- a/tests/semver/test_parse_constraint.py +++ b/tests/semver/test_parse_constraint.py @@ -188,6 +188,22 @@ include_min=True, ), ), + ( + "^0", + VersionRange( + min=Version.from_parts(0), + max=Version.from_parts(1), + include_min=True, + ), + ), + ( + "^0.0", + VersionRange( + min=Version.from_parts(0, 0), + max=Version.from_parts(0, 1), + include_min=True, + ), + ), ], ) def test_parse_constraint(constraint, version):