From 1501e61c1059d94ea88cc8942d0bde1ea521cb5d Mon Sep 17 00:00:00 2001 From: Rahul Gautam Singh Date: Thu, 9 May 2024 11:35:02 +0545 Subject: [PATCH 1/2] log debug message if new version is excluded from range --- lib/modules/versioning/pep440/range.spec.ts | 47 ++++++++++++++------- lib/modules/versioning/pep440/range.ts | 12 ++++++ 2 files changed, 44 insertions(+), 15 deletions(-) diff --git a/lib/modules/versioning/pep440/range.spec.ts b/lib/modules/versioning/pep440/range.spec.ts index 193d558fd6749b..5c913f39dc8971 100644 --- a/lib/modules/versioning/pep440/range.spec.ts +++ b/lib/modules/versioning/pep440/range.spec.ts @@ -1,17 +1,34 @@ -import { checkRangeAndRemoveUnnecessaryRangeLimit } from './range'; +import { logger } from '../../../logger'; +import { checkRangeAndRemoveUnnecessaryRangeLimit, getNewValue } from './range'; -it.each` - rangeInput | newVersion | expected - ${'==4.1.*,>=3.2.2'} | ${'4.1.1'} | ${'==4.1.*'} - ${'==4.0.*,>=3.2.2'} | ${'4.0.0'} | ${'==4.0.*'} - ${'==7.2.*'} | ${'7.2.0'} | ${'==7.2.*'} -`( - 'checkRange("$rangeInput, "$newVersion"") === "$expected"', - ({ rangeInput, newVersion, expected }) => { - const res = checkRangeAndRemoveUnnecessaryRangeLimit( - rangeInput, - newVersion, +describe('modules/versioning/pep440/range', () => { + it.each` + rangeInput | newVersion | expected + ${'==4.1.*,>=3.2.2'} | ${'4.1.1'} | ${'==4.1.*'} + ${'==4.0.*,>=3.2.2'} | ${'4.0.0'} | ${'==4.0.*'} + ${'==7.2.*'} | ${'7.2.0'} | ${'==7.2.*'} + `( + 'checkRange("$rangeInput, "$newVersion"") === "$expected"', + ({ rangeInput, newVersion, expected }) => { + const res = checkRangeAndRemoveUnnecessaryRangeLimit( + rangeInput, + newVersion, + ); + expect(res).toEqual(expected); + }, + ); + + it('returns null without warning if new version is excluded from range', () => { + const res = getNewValue({ + currentValue: '>=1.25.0,<2,!=1.32.0', + rangeStrategy: 'auto', + newVersion: '1.32.0', + currentVersion: '1.25.0', + }); + expect(res).toBeNull(); + expect(logger.debug).toHaveBeenCalledWith( + 'Cannot calculate new value as the newVersion:`1.32.0` is excluded from range: `>=1.25.0,<2,!=1.32.0`', ); - expect(res).toEqual(expected); - }, -); + expect(logger.warn).not.toHaveBeenCalled(); + }); +}); diff --git a/lib/modules/versioning/pep440/range.ts b/lib/modules/versioning/pep440/range.ts index 0c94a3c4c894a8..951e58974a4684 100644 --- a/lib/modules/versioning/pep440/range.ts +++ b/lib/modules/versioning/pep440/range.ts @@ -129,6 +129,18 @@ export function getNewValue({ return null; } + // return early newVersion is excluded from range + if ( + ranges.some( + (range) => range.operator === '!=' && range.version === newVersion, + ) + ) { + logger.debug( + `Cannot calculate new value as the newVersion:\`${newVersion}\` is excluded from range: \`${currentValue}\``, + ); + return null; + } + switch (rangeStrategy) { case 'auto': case 'replace': From bd17901f7f6a6504313b1e2987d72182084d9eca Mon Sep 17 00:00:00 2001 From: Rahul Gautam Singh Date: Thu, 9 May 2024 11:48:04 +0545 Subject: [PATCH 2/2] coverage: ignore exception --- lib/modules/versioning/pep440/range.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/modules/versioning/pep440/range.ts b/lib/modules/versioning/pep440/range.ts index 951e58974a4684..ea36bb335bfc18 100644 --- a/lib/modules/versioning/pep440/range.ts +++ b/lib/modules/versioning/pep440/range.ts @@ -129,7 +129,7 @@ export function getNewValue({ return null; } - // return early newVersion is excluded from range + // return early if newVersion is excluded from range if ( ranges.some( (range) => range.operator === '!=' && range.version === newVersion, @@ -203,6 +203,7 @@ export function getNewValue({ newVersion, ); + // istanbul ignore if if (!satisfies(newVersion, checkedResult)) { // we failed at creating the range logger.warn(