From cec37bb214c1be207dbabc05f822829408a8c20a Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 4 May 2024 14:51:07 +0200 Subject: [PATCH] fix(pep440): fix exception matching two ranges (#28827) Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- lib/modules/versioning/pep440/index.spec.ts | 8 ++++++++ lib/modules/versioning/pep440/index.ts | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/modules/versioning/pep440/index.spec.ts b/lib/modules/versioning/pep440/index.spec.ts index bb2ad28d78..8ba12022fb 100644 --- a/lib/modules/versioning/pep440/index.spec.ts +++ b/lib/modules/versioning/pep440/index.spec.ts @@ -37,6 +37,14 @@ describe('modules/versioning/pep440/index', () => { expect(pep440.equals(a, b)).toBe(expected); }); + it.each` + a | b | expected + ${'1.0'} | ${'>=1.0.0'} | ${true} + ${'>=3.8'} | ${'>=3.9'} | ${false} + `('matches($a, $b) === $expected', ({ a, b, expected }) => { + expect(pep440.matches(a, b)).toBe(expected); + }); + it.each` version | isSingle ${'1.2.3'} | ${true} diff --git a/lib/modules/versioning/pep440/index.ts b/lib/modules/versioning/pep440/index.ts index 6de5a74ad4..f37b731ab0 100644 --- a/lib/modules/versioning/pep440/index.ts +++ b/lib/modules/versioning/pep440/index.ts @@ -16,7 +16,7 @@ export const supportedRangeStrategies: RangeStrategy[] = [ const { compare: sortVersions, - satisfies: matches, + satisfies, valid, validRange, explain, @@ -74,6 +74,10 @@ export { isVersion, matches }; const equals = (version1: string, version2: string): boolean => isVersion(version1) && isVersion(version2) && eq(version1, version2); +function matches(version: string, range: string): boolean { + return isVersion(version) && isValid(range) && satisfies(version, range); +} + export const api: VersioningApi = { equals, getMajor, -- GitLab