* Build(deps-dev): bump prettier from 2.0.5 to 2.1.1 Bumps [prettier](https://github.com/prettier/prettier) from 2.0.5 to 2.1.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.0.5...2.1.1) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> * update code formatting for new prettier version Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> Co-authored-by: chris48s <chris.shaw480@gmail.com> Co-authored-by: chris48s <chris48s@users.noreply.github.com>
172 lines
4.5 KiB
JavaScript
172 lines
4.5 KiB
JavaScript
'use strict'
|
|
|
|
const { test, given, forCases } = require('sazerac')
|
|
const {
|
|
parseClassifiers,
|
|
parseDjangoVersionString,
|
|
sortDjangoVersions,
|
|
getLicenses,
|
|
getPackageFormats,
|
|
} = require('./pypi-helpers')
|
|
|
|
const classifiersFixture = {
|
|
info: {
|
|
classifiers: [
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Environment :: Web Environment',
|
|
'Framework :: Django',
|
|
'Framework :: Django :: 1.10',
|
|
'Framework :: Django :: 1.11',
|
|
'Intended Audience :: Developers',
|
|
'Intended Audience :: Developers',
|
|
'License :: OSI Approved :: BSD License',
|
|
'Operating System :: OS Independent',
|
|
'Natural Language :: English',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 2',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.4',
|
|
'Programming Language :: Python :: 3.5',
|
|
'Programming Language :: Python :: 3.6',
|
|
'Topic :: Internet :: WWW/HTTP',
|
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
'Programming Language :: Python :: Implementation :: PyPy',
|
|
],
|
|
},
|
|
}
|
|
|
|
describe('PyPI helpers', function () {
|
|
test(parseClassifiers, function () {
|
|
given(
|
|
classifiersFixture,
|
|
/^Programming Language :: Python :: ([\d.]+)$/
|
|
).expect(['2', '2.7', '3', '3.4', '3.5', '3.6'])
|
|
|
|
given(classifiersFixture, /^Framework :: Django :: ([\d.]+)$/).expect([
|
|
'1.10',
|
|
'1.11',
|
|
])
|
|
|
|
given(
|
|
classifiersFixture,
|
|
/^Programming Language :: Python :: Implementation :: (\S+)$/
|
|
).expect(['cpython', 'pypy'])
|
|
|
|
// regex that matches everything
|
|
given(classifiersFixture, /^([\S\s+]+)$/).expect(
|
|
classifiersFixture.info.classifiers.map(e => e.toLowerCase())
|
|
)
|
|
|
|
// regex that matches nothing
|
|
given(classifiersFixture, /^(?!.*)*$/).expect([])
|
|
})
|
|
|
|
test(parseDjangoVersionString, function () {
|
|
given('1').expect({ major: 1, minor: 0 })
|
|
given('1.0').expect({ major: 1, minor: 0 })
|
|
given('7.2').expect({ major: 7, minor: 2 })
|
|
given('7.2derpderp').expect({ major: 7, minor: 2 })
|
|
given('7.2.9.5.8.3').expect({ major: 7, minor: 2 })
|
|
given('foo').expect({ major: 0, minor: 0 })
|
|
})
|
|
|
|
test(sortDjangoVersions, function () {
|
|
// Each of these includes a different variant: 2.0, 2, and 2.0rc1.
|
|
given(['2.0', '1.9', '10', '1.11', '2.1', '2.11']).expect([
|
|
'1.9',
|
|
'1.11',
|
|
'2.0',
|
|
'2.1',
|
|
'2.11',
|
|
'10',
|
|
])
|
|
|
|
given(['2', '1.9', '10', '1.11', '2.1', '2.11']).expect([
|
|
'1.9',
|
|
'1.11',
|
|
'2',
|
|
'2.1',
|
|
'2.11',
|
|
'10',
|
|
])
|
|
|
|
given(['2.0rc1', '10', '1.9', '1.11', '2.1', '2.11']).expect([
|
|
'1.9',
|
|
'1.11',
|
|
'2.0rc1',
|
|
'2.1',
|
|
'2.11',
|
|
'10',
|
|
])
|
|
})
|
|
|
|
test(getLicenses, () => {
|
|
forCases([given({ info: { license: 'MIT', classifiers: [] } })]).expect([
|
|
'MIT',
|
|
])
|
|
forCases([
|
|
given({
|
|
info: {
|
|
license: '',
|
|
classifiers: ['License :: OSI Approved :: MIT License'],
|
|
},
|
|
}),
|
|
given({
|
|
info: {
|
|
license: '',
|
|
classifiers: [
|
|
'License :: OSI Approved :: MIT License',
|
|
'License :: DFSG approved',
|
|
],
|
|
},
|
|
}),
|
|
]).expect(['MIT'])
|
|
given({
|
|
info: {
|
|
license: '',
|
|
classifiers: ['License :: Public Domain'],
|
|
},
|
|
}).expect(['public domain'])
|
|
given({
|
|
info: {
|
|
license: '',
|
|
classifiers: ['License :: Netscape Public License (NPL)'],
|
|
},
|
|
}).expect(['NPL'])
|
|
})
|
|
|
|
test(getPackageFormats, () => {
|
|
given({
|
|
info: { version: '2.19.1' },
|
|
releases: {
|
|
'1.0.4': [{ packagetype: 'sdist' }],
|
|
'2.19.1': [{ 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' }],
|
|
},
|
|
}).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' },
|
|
],
|
|
},
|
|
}).expect({ hasWheel: false, hasEgg: true })
|
|
})
|
|
})
|