[piwheels], filter out versions with no files (#7696)

This commit is contained in:
chris48s
2022-03-10 16:27:52 +00:00
committed by GitHub
parent 53cb1da830
commit 7c524325b4
2 changed files with 24 additions and 11 deletions

View File

@@ -10,6 +10,7 @@ const schema = Joi.object({
Joi.object({
prerelease: Joi.boolean().required(),
yanked: Joi.boolean().required(),
files: Joi.object().required(),
})
)
.required(),
@@ -66,10 +67,12 @@ export default class PiWheelsVersion extends BaseJsonService {
version: key,
prerelease: releases[key].prerelease,
yanked: releases[key].yanked,
hasFiles: Object.keys(releases[key].files).length > 0,
}),
[]
)
.filter(release => !release.yanked) // exclude any yanked releases
.filter(release => release.hasFiles) // exclude any releases with no wheels
if (allReleases.length === 0) {
throw new InvalidResponse({ prettyMessage: 'no versions found' })

View File

@@ -7,36 +7,43 @@ describe('PiWheelsVersion', function () {
test(PiWheelsVersion.transform, () => {
given(
{
'2.0.0rc1': { prerelease: true, yanked: false },
'1.9.0': { prerelease: false, yanked: false },
'2.0.0rc1': { prerelease: true, yanked: false, files: { foobar: {} } },
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
},
false
).expect('1.9.0')
given(
{
'2.0.0rc1': { prerelease: true, yanked: false },
'1.9.0': { prerelease: false, yanked: false },
'2.0.0rc1': { prerelease: true, yanked: false, files: { foobar: {} } },
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
},
true
).expect('2.0.0rc1')
given(
{
'2.0.0': { prerelease: false, yanked: true },
'1.9.0': { prerelease: false, yanked: false },
'2.0.0': { prerelease: false, yanked: true, files: { foobar: {} } },
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
},
false
).expect('1.9.0')
given(
{
'2.0.0': { prerelease: false, yanked: false },
'1.9.0': { prerelease: false, yanked: false },
'2.0.0': { prerelease: false, yanked: false, files: {} },
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
},
false
).expect('1.9.0')
given(
{
'2.0.0': { prerelease: false, yanked: false, files: { foobar: {} } },
'1.9.0': { prerelease: false, yanked: false, files: { foobar: {} } },
},
false
).expect('2.0.0')
given(
{
'2.0.0rc2': { prerelease: true, yanked: false },
'2.0.0rc1': { prerelease: true, yanked: false },
'2.0.0rc2': { prerelease: true, yanked: false, files: { foobar: {} } },
'2.0.0rc1': { prerelease: true, yanked: false, files: { foobar: {} } },
},
false
).expect('2.0.0rc2')
@@ -45,7 +52,10 @@ describe('PiWheelsVersion', function () {
it('throws `no releases` InvalidResponse if no versions', function () {
expect(() =>
PiWheelsVersion.transform(
{ '1.0.0': { prerelease: false, yanked: true } },
{
'1.0.1': { prerelease: false, yanked: false, files: {} },
'1.0.0': { prerelease: false, yanked: true, files: { foobar: {} } },
},
false
)
)