diff --git a/lib/manager/pip_requirements/extract.js b/lib/manager/pip_requirements/extract.js index caae795cd9c520c2cf20ccb41a916ba2643ad27e..99c1274fafe9e405c9a1d7edd1217ee3b8d9f2cf 100644 --- a/lib/manager/pip_requirements/extract.js +++ b/lib/manager/pip_requirements/extract.js @@ -22,7 +22,7 @@ function extractPackageFile(content) { let registryUrls; content.split('\n').forEach(line => { if (line.startsWith('--index-url ')) { - const registryUrl = line.substring('--index-url '.length); + const registryUrl = line.substring('--index-url '.length).split(' ')[0]; registryUrls = [registryUrl]; } }); diff --git a/test/manager/pip_requirements/__snapshots__/extract.spec.js.snap b/test/manager/pip_requirements/__snapshots__/extract.spec.js.snap index 5b093bc9daae19d47f06afd6c57f851869428669..5e78df4c1b79ac95e7429c544f33a159a340d9a9 100644 --- a/test/manager/pip_requirements/__snapshots__/extract.spec.js.snap +++ b/test/manager/pip_requirements/__snapshots__/extract.spec.js.snap @@ -112,27 +112,32 @@ Array [ ] `; -exports[`lib/manager/pip_requirements/extract extractPackageFile() handles extras 1`] = ` -Array [ - Object { - "currentValue": "==2.0.12", - "datasource": "pypi", - "depName": "Django", - "fromVersion": "2.0.12", - "lineNumber": 0, - }, - Object { - "currentValue": "==4.1.1", - "datasource": "pypi", - "depName": "celery", - "fromVersion": "4.1.1", - "lineNumber": 1, - }, - Object { - "currentValue": " == 3.2.1", - "datasource": "pypi", - "depName": "foo", - "lineNumber": 2, - }, -] +exports[`lib/manager/pip_requirements/extract extractPackageFile() handles extras and complex index url 1`] = ` +Object { + "deps": Array [ + Object { + "currentValue": "==2.0.12", + "datasource": "pypi", + "depName": "Django", + "fromVersion": "2.0.12", + "lineNumber": 1, + }, + Object { + "currentValue": "==4.1.1", + "datasource": "pypi", + "depName": "celery", + "fromVersion": "4.1.1", + "lineNumber": 2, + }, + Object { + "currentValue": " == 3.2.1", + "datasource": "pypi", + "depName": "foo", + "lineNumber": 3, + }, + ], + "registryUrls": Array [ + "https://artifactory.company.com/artifactory/api/pypi/python/simple", + ], +} `; diff --git a/test/manager/pip_requirements/__snapshots__/update.spec.js.snap b/test/manager/pip_requirements/__snapshots__/update.spec.js.snap index b015dff212518faf6cd8e48b056d759eb34c0c75..5d21201e801af2ec7c35787baf03266f4fe04c01 100644 --- a/test/manager/pip_requirements/__snapshots__/update.spec.js.snap +++ b/test/manager/pip_requirements/__snapshots__/update.spec.js.snap @@ -20,8 +20,9 @@ wsgiref==0.1.2 # something else `; exports[`manager/pip_requirements/update updateDependency replaces existing value with extras 1`] = ` -"Django[argon2]==2.0.12 -celery [redis]==4.1.2 +"--index-url https://artifactory.company.com/artifactory/api/pypi/python/simple --trusted-host artifactory.company.com --default-timeout 600 +Django[argon2]==4.1.2 +celery [redis]==4.1.1 foo [bar] == 3.2.1 # handles extra white space " `; diff --git a/test/manager/pip_requirements/_fixtures/requirements4.txt b/test/manager/pip_requirements/_fixtures/requirements4.txt index d7def5af29c307069f9c756c370757a1f756ca07..c8da95e7de78f01e371e7c1754367f5e18aee978 100644 --- a/test/manager/pip_requirements/_fixtures/requirements4.txt +++ b/test/manager/pip_requirements/_fixtures/requirements4.txt @@ -1,3 +1,4 @@ +--index-url https://artifactory.company.com/artifactory/api/pypi/python/simple --trusted-host artifactory.company.com --default-timeout 600 Django[argon2]==2.0.12 celery [redis]==4.1.1 foo [bar] == 3.2.1 # handles extra white space diff --git a/test/manager/pip_requirements/extract.spec.js b/test/manager/pip_requirements/extract.spec.js index 60c7adc012aecf472edb38ac5a587ebc3da311c4..ac357ea81a8297839757eb6da3a18291c1e9315d 100644 --- a/test/manager/pip_requirements/extract.spec.js +++ b/test/manager/pip_requirements/extract.spec.js @@ -46,10 +46,13 @@ describe('lib/manager/pip_requirements/extract', () => { expect(res).toMatchSnapshot(); expect(res).toHaveLength(5); }); - it('handles extras', () => { - const res = extractPackageFile(requirements4, config).deps; + it('handles extras and complex index url', () => { + const res = extractPackageFile(requirements4, config); expect(res).toMatchSnapshot(); - expect(res).toHaveLength(3); + expect(res.registryUrls).toEqual([ + 'https://artifactory.company.com/artifactory/api/pypi/python/simple', + ]); + expect(res.deps).toHaveLength(3); }); }); });