From 0025902df70f72dfa93e6fd51d58325eea0078a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Andrei?= Date: Tue, 26 Jul 2022 23:12:18 -0300 Subject: [PATCH] Update PyPI api according to https://warehouse.pypa.io/api-reference/json.html --- services/pypi/pypi-base.js | 15 +++++--------- services/pypi/pypi-helpers.js | 10 +++------ services/pypi/pypi-helpers.spec.js | 31 +++++++--------------------- services/pypi/pypi-license.tester.js | 4 ++-- services/pypi/pypi-version.tester.js | 2 +- 5 files changed, 18 insertions(+), 44 deletions(-) diff --git a/services/pypi/pypi-base.js b/services/pypi/pypi-base.js index a25ed787b4f03..4a3b27a7d1955 100644 --- a/services/pypi/pypi-base.js +++ b/services/pypi/pypi-base.js @@ -9,16 +9,11 @@ const schema = Joi.object({ license: Joi.string().allow('').allow(null), classifiers: Joi.array().items(Joi.string()).required(), }).required(), - releases: Joi.object() - .pattern( - Joi.string(), - Joi.array() - .items( - Joi.object({ - packagetype: Joi.string().required(), - }) - ) - .required() + urls: Joi.array() + .items( + Joi.object({ + packagetype: Joi.string().required(), + }) ) .required(), }).required() diff --git a/services/pypi/pypi-helpers.js b/services/pypi/pypi-helpers.js index 3d3fa9f9f55a6..0e16534d8bd89 100644 --- a/services/pypi/pypi-helpers.js +++ b/services/pypi/pypi-helpers.js @@ -88,16 +88,12 @@ function getLicenses(packageData) { } function getPackageFormats(packageData) { - const { - info: { version }, - releases, - } = packageData - const releasesForVersion = releases[version] + const { urls } = packageData return { - hasWheel: releasesForVersion.some(({ packagetype }) => + hasWheel: urls.some(({ packagetype }) => ['wheel', 'bdist_wheel'].includes(packagetype) ), - hasEgg: releasesForVersion.some(({ packagetype }) => + hasEgg: urls.some(({ packagetype }) => ['egg', 'bdist_egg'].includes(packagetype) ), } diff --git a/services/pypi/pypi-helpers.spec.js b/services/pypi/pypi-helpers.spec.js index bb86c3795538c..d5a54dd5f505f 100644 --- a/services/pypi/pypi-helpers.spec.js +++ b/services/pypi/pypi-helpers.spec.js @@ -164,34 +164,17 @@ describe('PyPI helpers', function () { test(getPackageFormats, () => { given({ - info: { version: '2.19.1' }, - releases: { - '1.0.4': [{ packagetype: 'sdist' }], - '2.19.1': [{ packagetype: 'bdist_wheel' }, { packagetype: 'sdist' }], - }, + urls: [{ packagetype: 'bdist_wheel' }, { packagetype: 'sdist' }], }).expect({ hasWheel: true, hasEgg: false }) given({ - info: { version: '1.0.4' }, - releases: { - '1.0.4': [{ packagetype: 'sdist' }], - '2.19.1': [{ packagetype: 'bdist_wheel' }, { packagetype: 'sdist' }], - }, + urls: [{ packagetype: 'sdist' }], }).expect({ hasWheel: false, hasEgg: false }) given({ - info: { version: '0.8.2' }, - releases: { - 0.8: [{ packagetype: 'sdist' }], - '0.8.1': [ - { packagetype: 'bdist_egg' }, - { packagetype: 'bdist_egg' }, - { packagetype: 'sdist' }, - ], - '0.8.2': [ - { packagetype: 'bdist_egg' }, - { packagetype: 'bdist_egg' }, - { packagetype: 'sdist' }, - ], - }, + urls: [ + { packagetype: 'bdist_egg' }, + { packagetype: 'bdist_egg' }, + { packagetype: 'sdist' }, + ], }).expect({ hasWheel: false, hasEgg: true }) }) }) diff --git a/services/pypi/pypi-license.tester.js b/services/pypi/pypi-license.tester.js index 74cce2a414425..6567a90c2f4e7 100644 --- a/services/pypi/pypi-license.tester.js +++ b/services/pypi/pypi-license.tester.js @@ -24,7 +24,7 @@ t.create('license (from trove classifier)') license: '', classifiers: ['License :: OSI Approved :: MIT License'], }, - releases: {}, + urls: [], }) ) .expectBadge({ @@ -46,7 +46,7 @@ t.create('license (as acronym from trove classifier)') 'License :: OSI Approved :: GNU General Public License (GPL)', ], }, - releases: {}, + urls: [], }) ) .expectBadge({ diff --git a/services/pypi/pypi-version.tester.js b/services/pypi/pypi-version.tester.js index ed083d92c6504..97d1bb0470b20 100644 --- a/services/pypi/pypi-version.tester.js +++ b/services/pypi/pypi-version.tester.js @@ -43,7 +43,7 @@ t.create('no trove classifiers') license: 'foo', classifiers: [], }, - releases: {}, + urls: [], }) ) .expectBadge({