Skip to content
Snippets Groups Projects
Unverified Commit efa705d9 authored by Érico Andrei's avatar Érico Andrei Committed by GitHub
Browse files

Update PyPI api according to https://warehouse.pypa.io/api-reference/json.html (#8251)

parent 5234ecde
No related branches found
No related tags found
No related merge requests found
...@@ -9,17 +9,12 @@ const schema = Joi.object({ ...@@ -9,17 +9,12 @@ const schema = Joi.object({
license: Joi.string().allow('').allow(null), license: Joi.string().allow('').allow(null),
classifiers: Joi.array().items(Joi.string()).required(), classifiers: Joi.array().items(Joi.string()).required(),
}).required(), }).required(),
releases: Joi.object() urls: Joi.array()
.pattern(
Joi.string(),
Joi.array()
.items( .items(
Joi.object({ Joi.object({
packagetype: Joi.string().required(), packagetype: Joi.string().required(),
}) })
) )
.required()
)
.required(), .required(),
}).required() }).required()
......
...@@ -88,16 +88,12 @@ function getLicenses(packageData) { ...@@ -88,16 +88,12 @@ function getLicenses(packageData) {
} }
function getPackageFormats(packageData) { function getPackageFormats(packageData) {
const { const { urls } = packageData
info: { version },
releases,
} = packageData
const releasesForVersion = releases[version]
return { return {
hasWheel: releasesForVersion.some(({ packagetype }) => hasWheel: urls.some(({ packagetype }) =>
['wheel', 'bdist_wheel'].includes(packagetype) ['wheel', 'bdist_wheel'].includes(packagetype)
), ),
hasEgg: releasesForVersion.some(({ packagetype }) => hasEgg: urls.some(({ packagetype }) =>
['egg', 'bdist_egg'].includes(packagetype) ['egg', 'bdist_egg'].includes(packagetype)
), ),
} }
......
...@@ -164,34 +164,17 @@ describe('PyPI helpers', function () { ...@@ -164,34 +164,17 @@ describe('PyPI helpers', function () {
test(getPackageFormats, () => { test(getPackageFormats, () => {
given({ given({
info: { version: '2.19.1' }, urls: [{ packagetype: 'bdist_wheel' }, { packagetype: 'sdist' }],
releases: {
'1.0.4': [{ packagetype: 'sdist' }],
'2.19.1': [{ packagetype: 'bdist_wheel' }, { packagetype: 'sdist' }],
},
}).expect({ hasWheel: true, hasEgg: false }) }).expect({ hasWheel: true, hasEgg: false })
given({ given({
info: { version: '1.0.4' }, urls: [{ packagetype: 'sdist' }],
releases: {
'1.0.4': [{ packagetype: 'sdist' }],
'2.19.1': [{ packagetype: 'bdist_wheel' }, { packagetype: 'sdist' }],
},
}).expect({ hasWheel: false, hasEgg: false }) }).expect({ hasWheel: false, hasEgg: false })
given({ given({
info: { version: '0.8.2' }, urls: [
releases: {
0.8: [{ packagetype: 'sdist' }],
'0.8.1': [
{ packagetype: 'bdist_egg' }, { packagetype: 'bdist_egg' },
{ packagetype: 'bdist_egg' }, { packagetype: 'bdist_egg' },
{ packagetype: 'sdist' }, { packagetype: 'sdist' },
], ],
'0.8.2': [
{ packagetype: 'bdist_egg' },
{ packagetype: 'bdist_egg' },
{ packagetype: 'sdist' },
],
},
}).expect({ hasWheel: false, hasEgg: true }) }).expect({ hasWheel: false, hasEgg: true })
}) })
}) })
...@@ -24,7 +24,7 @@ t.create('license (from trove classifier)') ...@@ -24,7 +24,7 @@ t.create('license (from trove classifier)')
license: '', license: '',
classifiers: ['License :: OSI Approved :: MIT License'], classifiers: ['License :: OSI Approved :: MIT License'],
}, },
releases: {}, urls: [],
}) })
) )
.expectBadge({ .expectBadge({
...@@ -46,7 +46,7 @@ t.create('license (as acronym from trove classifier)') ...@@ -46,7 +46,7 @@ t.create('license (as acronym from trove classifier)')
'License :: OSI Approved :: GNU General Public License (GPL)', 'License :: OSI Approved :: GNU General Public License (GPL)',
], ],
}, },
releases: {}, urls: [],
}) })
) )
.expectBadge({ .expectBadge({
......
...@@ -43,7 +43,7 @@ t.create('no trove classifiers') ...@@ -43,7 +43,7 @@ t.create('no trove classifiers')
license: 'foo', license: 'foo',
classifiers: [], classifiers: [],
}, },
releases: {}, urls: [],
}) })
) )
.expectBadge({ .expectBadge({
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment