From 964439fc1f5370db2ecb60abb98f75b98f9ee029 Mon Sep 17 00:00:00 2001 From: Arjuna Sky Kok Date: Sat, 13 Jun 2020 13:48:20 +0700 Subject: [PATCH] Fix NPM spec less comparison with prerelease bug. --- semantic_version/base.py | 12 +++++++----- tests/test_npm.py | 4 ++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/semantic_version/base.py b/semantic_version/base.py index 871ccb0..2a8338a 100644 --- a/semantic_version/base.py +++ b/semantic_version/base.py @@ -1292,15 +1292,17 @@ def parse(cls, expression): prerelease_policy=Range.PRERELEASE_ALWAYS, )) prerelease_clauses.append(clause) - non_prerel_clauses.append(cls.range( - operator=clause.operator, - target=clause.target.truncate(), - )) + if not clause.operator in (Range.OP_LT, Range.OP_LTE): + non_prerel_clauses.append(cls.range( + operator=clause.operator, + target=clause.target.truncate(), + )) else: non_prerel_clauses.append(clause) if prerelease_clauses: result |= AllOf(*prerelease_clauses) - result |= AllOf(*non_prerel_clauses) + if non_prerel_clauses: + result |= AllOf(*non_prerel_clauses) return result diff --git a/tests/test_npm.py b/tests/test_npm.py index da3f5ba..492045f 100644 --- a/tests/test_npm.py +++ b/tests/test_npm.py @@ -40,6 +40,10 @@ def subTest(self, **kwargs): ['1.2.3-alpha.3', '1.2.3-alpha.7', '3.4.5'], ['1.2.3-alpha.2', '3.4.5-alpha.9'], ), + '<=1.2.3-beta.3': ( + ['1.2.3-beta.2', '1.2.3-alpha.7'], + ['1.2.3-beta.4', '1.2.3-rc.1', '1.1.1'], + ), '>1.2.3-alpha <1.2.3-beta': ( ['1.2.3-alpha.0', '1.2.3-alpha.1'], ['1.2.3', '1.2.3-beta.0', '1.2.3-bravo'],