Skip to content
Snippets Groups Projects
Select Git revision
  • 7675f3a9f12728b6e5d7c68ac5b0897594a0cfd8
  • main default protected
  • feat/gnupg
  • next
  • fix/36615b-branch-reuse-no-cache
  • renovate/main-redis-5.x
  • chore/punycode
  • refactor/pin-new-value
  • feat/36219--git-x509-signing
  • feat/structured-logger
  • hotfix/39.264.1
  • feat/skip-dangling
  • gh-readonly-queue/next/pr-36034-7a061c4ca1024a19e2c295d773d9642625d1c2be
  • hotfix/39.238.3
  • refactor/gitlab-auto-approve
  • feat/template-strings
  • gh-readonly-queue/next/pr-35654-137d934242c784e0c45d4b957362214f0eade1d7
  • fix/32307-global-extends-merging
  • fix/32307-global-extends-repositories
  • gh-readonly-queue/next/pr-35009-046ebf7cb84ab859f7fefceb5fa53a54ce9736f8
  • gh-readonly-queue/next/pr-35009-9d5e583b7d7251148ab0d11ee8dd38149618d162
  • 41.43.5
  • 41.43.4
  • 41.43.3
  • 41.43.2
  • 41.43.1
  • 41.43.0
  • 41.42.12
  • 41.42.11
  • 41.42.10
  • 41.42.9
  • 41.42.8
  • 41.42.7
  • 41.42.6
  • 41.42.5
  • 41.42.4
  • 41.42.3
  • 41.42.2
  • 41.42.1
  • 41.42.0
  • 41.41.0
41 results

check-existing.js

Blame
  • pypi-helpers.spec.js 4.88 KiB
    import { test, given, forCases } from 'sazerac'
    import {
      parseClassifiers,
      parsePypiVersionString,
      sortPypiVersions,
      getLicenses,
      getPackageFormats,
    } from './pypi-helpers.js'
    
    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(parsePypiVersionString, 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 })
      })