def test_equality(self): self.assertEqual(SemanticVersion("01.2.3"), SemanticVersion("1.2.3")) self.assertEqual(SemanticVersion("1.02.3"), SemanticVersion("1.2.3")) self.assertEqual(SemanticVersion("1.2.03"), SemanticVersion("1.2.3")) self.assertEqual(SemanticVersion("1.2.3-01"), SemanticVersion("1.2.3-1")) self.assertEqual(SemanticVersion("1.2.3+01"), SemanticVersion("1.2.3+1"))
def test_api_uploader_creates_package_version(self): self.be_normal_oauth_user('other-uploader') self.post_package_version('1.2.3') version = self.get_package_version('1.2.3') self.assertIsNotNone(version) self.assertEqual(version.version, SemanticVersion('1.2.3')) self.assertEqual(version.package.name, 'test-package') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3'))
def test_api_create_sets_latest_package_for_increased_version_number(self): self.be_admin_oauth_user() self.post_package_version('1.2.3') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3')) self.post_package_version('1.2.4') self.assertEqual(self.latest_version(), SemanticVersion('1.2.4')) self.assert_package_updated_is_latest_version_created()
def test_api_create_doesnt_set_latest_package_for_prerelease_version_number(self): self.be_admin_oauth_user() self.post_package_version('1.2.3') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3')) self.post_package_version('1.2.5-pre') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3')) self.assert_package_updated_is_latest_version_created()
def test_api_create_sets_latest_package_for_prerelease_versions_only(self): self.be_admin_oauth_user() self.post_package_version('1.2.3-pre1') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3-pre1')) self.post_package_version('1.2.3-pre0') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3-pre1')) self.post_package_version('1.2.3-pre2') self.assertEqual(self.latest_version(), SemanticVersion('1.2.3-pre2')) self.assert_package_updated_is_latest_version_created()
def test_api_uploadership_is_case_insensitive(self): self.be_normal_oauth_user('NAme') self.post_package_version(name='new-package', version='0.0.1') version = Package.get_by_key_name('new-package').latest_version self.assertIsNotNone(version) self.assertEqual(version.version, SemanticVersion('0.0.1')) self.be_normal_oauth_user('naME') self.post_package_version(name='new-package', version='0.0.2') version = Package.get_by_key_name('new-package').latest_version self.assertIsNotNone(version) self.assertEqual(version.version, SemanticVersion('0.0.2'))
def test_api_user_creates_new_package(self): self.be_normal_oauth_user() self.post_package_version(name='new-package', version='0.0.1') package = Package.get_by_key_name('new-package') self.assertIsNotNone(package) self.assertEqual(package.name, 'new-package') self.assertEqual(package.uploaders, [handlers.get_current_user()]) version = package.version_set.get() self.assertIsNotNone(version) self.assertEqual(version.version, SemanticVersion('0.0.1')) self.assertEqual(version.package.name, 'new-package') version = package.latest_version self.assertIsNotNone(version) self.assertEqual(version.version, SemanticVersion('0.0.1')) self.assertEqual(version.package.name, 'new-package') self.assertEqual(package.updated, version.created) self.assertEqual('This is a README.', version.readme.text)
def test_canonical(self): self.assertEqual(str(SemanticVersion("01.2.3").canonical), "1.2.3") self.assertEqual(str(SemanticVersion("1.02.3").canonical), "1.2.3") self.assertEqual(str(SemanticVersion("1.2.03").canonical), "1.2.3") self.assertEqual(str(SemanticVersion("1.2.3-01").canonical), "1.2.3-1") self.assertEqual(str(SemanticVersion("1.2.3+01").canonical), "1.2.3+1")
def assert_less_than(version1, version2): self.assertTrue( SemanticVersion(version1) < SemanticVersion(version2), "Expected %s < %s" % (version1, version2))
def assert_invalid_semver(version): self.assertRaises(db.BadValueError, lambda: SemanticVersion(version))
def assert_valid_semver(version): self.assertEqual(version, str(SemanticVersion(version)))