def test_ge(self): """Assert PythonVersion supports >= comparison.""" old_version = python.PythonVersion(version="1.0.0") equally_new_version = python.PythonVersion(version="1.1.0") new_version = python.PythonVersion(version="1.1.0") self.assertFalse(old_version >= new_version) self.assertTrue(new_version >= equally_new_version) self.assertTrue(new_version >= old_version)
def test_normalization_prerelease_spelling(self): """Assert that alternate prerelease spelling is accepted.""" for alt, normal in ( ("alpha", "a"), ("beta", "b"), ("c", "rc"), ("pre", "rc"), ("preview", "rc"), ): version = python.PythonVersion(version="1.0" + alt) normalized = "1.0" + normal + "0" self.assertEqual(str(version), normalized) self.assertEqual(version, python.PythonVersion(version=normalized))
def test_prerelease_nonsense(self): """ Assert versions with junk following the version aren't prerelease versions. """ version = python.PythonVersion(version="1.0.0junk1") self.assertFalse(version.prerelease())
def test_lt_ab_prerelease_fields(self): """Assert prerelease fields are compared.""" old_version = python.PythonVersion(version="1.0.0a1") new_version = python.PythonVersion(version="1.0.0b1") self.assertTrue(old_version < new_version) self.assertFalse(new_version < old_version)
def test_normalization_postrelease_spelling(self): """Assert that alternate postrelease spelling is accepted.""" for alt in "rev", "r", "-": version = python.PythonVersion(version="1.0" + alt + "1") self.assertEqual(str(version), "1.0.post1") self.assertEqual(version, python.PythonVersion(version="1.0.post1"))
def test_lt_one_prerelease_field(self): """Assert missing prerelease fields are equivalent to 0.""" old_version = python.PythonVersion(version="1.0.0a0") new_version = python.PythonVersion(version="1.0.0a") self.assertTrue(old_version == new_version) self.assertTrue(new_version == old_version)
def test_normalization_integer(self): """Assert that numeric parts are normalized.""" version = python.PythonVersion(version="0900.00+foo0100") self.assertEqual(str(version), "900.0+foo0100")
def test_prerelease_multiple_filter(self): """Assert pre-releases will be valid if multiple filters is applied.""" version = python.PythonVersion(version="v1.0.0", pre_release_filter="a;v") self.assertTrue(version.prerelease())
def test_postrelease_with_number(self): """Assert versions with "post" are postrelease versions.""" for suffix in (".post1", ".post2"): version = python.PythonVersion(version="1.0.0" + suffix) self.assertEqual(str(version), "1.0.0" + suffix) self.assertTrue(version.postrelease())
def test_prerelease_with_number(self): """Assert versions with RC are prerelease versions.""" for suffix in ("rc1", "a2", "b10", ".dev3"): version = python.PythonVersion(version="1.0.0" + suffix) self.assertEqual(str(version), "1.0.0" + suffix) self.assertTrue(version.prerelease())
def test_prerelease_prerelease_no_number(self): """Assert pre-releases without a number are still valid pre-releases.""" for suffix in ("rc", "a", "b", ".dev"): version = python.PythonVersion(version="1.0.0" + suffix) self.assertEqual(str(version), "1.0.0" + suffix + "0") self.assertTrue(version.prerelease())
def test_gt(self): """Assert PythonVersion supports > comparison.""" old_version = python.PythonVersion(version="1.0.0") new_version = python.PythonVersion(version="1.1.0") self.assertTrue(new_version > old_version) self.assertFalse(old_version > new_version)
def test_normalization_v(self): """Assert that a leading "v" is thrown away.""" version = python.PythonVersion(version="v1.0.0") self.assertEqual(str(version), "1.0.0") self.assertEqual(version, python.PythonVersion(version="1.0.0"))
def test_lt_nonsense(self): """Assert PythonVersion supports < comparison.""" old_version = python.PythonVersion(version="1.0.0junk") new_version = python.PythonVersion(version="1.1.0") self.assertTrue(old_version < new_version) self.assertFalse(new_version < old_version)
def test_lt_both_prerelease_one_unversioned(self): """Assert unversioned prereleases are treated as 0.""" old_version = python.PythonVersion(version="1.1.0rc") new_version = python.PythonVersion(version="1.1.0rc0") self.assertTrue(old_version == new_version) self.assertTrue(new_version == old_version)
def test_lt_beta_vs_newer_alpha(self): """Assert alpha prereleases of newer versions are larger than older betas.""" old_version = python.PythonVersion(version="1.0.0b1") new_version = python.PythonVersion(version="1.0.1a2") self.assertTrue(old_version < new_version) self.assertFalse(new_version < old_version)
def test_lt_beta_vs_alpha(self): """Assert beta prereleases are greater than alpha prereleases of the same version.""" old_version = python.PythonVersion(version="1.0.0a2") new_version = python.PythonVersion(version="1.0.0b1") self.assertTrue(old_version < new_version) self.assertFalse(new_version < old_version)
def test_lt_rc_vs_beta(self): """Assert rc prereleases are greater than beta prereleases of the same version.""" old_version = python.PythonVersion(version="1.0.0b2") new_version = python.PythonVersion(version="1.0.0rc1") self.assertTrue(old_version < new_version) self.assertFalse(new_version < old_version)
def test_normalization_ws(self): """Assert that whitespace is trimmed.""" version = python.PythonVersion(version=" 1.0.0\n") self.assertEqual(str(version), "1.0.0") self.assertEqual(version, python.PythonVersion(version="1.0.0"))
def test_eq(self): """Assert PythonVersion supports == comparison.""" old_version = python.PythonVersion(version="1.0.0") new_version = python.PythonVersion(version="1.0.0") self.assertTrue(new_version == old_version)
def test_prerelease_prerelease_separators(self): """Assert pre-release separators are normalized away.""" for suffix in (".rc1", ".a2", ".b10", "-rc2", "-a3", "-b20"): version = python.PythonVersion(version="1.0.0" + suffix) self.assertEqual(str(version), "1.0.0" + suffix[1:]) self.assertTrue(version.prerelease())
def test_eq_both_unnumbered_prereleases(self): """Assert two prereleases of the same type without versions are equal.""" old_version = python.PythonVersion(version="1.0.0b") new_version = python.PythonVersion(version="1.0.0b") self.assertTrue(new_version == old_version)
def test_eq_nonsense(self): """Assert nonsense version is not equal.""" old_version = python.PythonVersion(version="1.0.0junk") new_version = python.PythonVersion(version="1.0.0") self.assertFalse(old_version == new_version)
def test_eq_both_nonsense(self): """Assert two nonsense versions are equal.""" old_version = python.PythonVersion(version="1.0.0junk") new_version = python.PythonVersion(version="1.0.0junk") self.assertTrue(old_version == new_version)
def test_postrelease_false(self): """Assert postrelease is defined and returns False with non-postrelease versions.""" version = python.PythonVersion(version="1.0.0") self.assertFalse(version.postrelease())
def test_normalization_case(self): """Assert that version tags are normalized to lowercase.""" version = python.PythonVersion(version="1.1RC1") self.assertEqual(str(version), "1.1rc1") self.assertEqual(version, python.PythonVersion(version="1.1rc1"))
def test_postrelease_postrelease_separators(self): """Assert pre-release separators are normalized to dot.""" for suffix in ("post1", "post2"): version = python.PythonVersion(version="1.0.0" + suffix) self.assertEqual(str(version), "1.0.0" + "." + suffix) self.assertTrue(version.postrelease())
def test_postrelease_postrelease_no_number(self): """Assert pre-releases without a number are still valid pre-releases.""" version = python.PythonVersion(version="1.0.0post") self.assertEqual(str(version), "1.0.0.post0") self.assertTrue(version.postrelease())