Issue #7575: An overflow test for math.expm1 was failing on OS X 10.4/Intel,
[python.git] / Lib / distutils / tests / test_version.py
blob747db94804c99b0dde8d020123c6c9ca7927621f
1 """Tests for distutils.version."""
2 import unittest
3 from distutils.version import LooseVersion
4 from distutils.version import StrictVersion
6 class VersionTestCase(unittest.TestCase):
8 def test_prerelease(self):
9 version = StrictVersion('1.2.3a1')
10 self.assertEquals(version.version, (1, 2, 3))
11 self.assertEquals(version.prerelease, ('a', 1))
12 self.assertEquals(str(version), '1.2.3a1')
14 version = StrictVersion('1.2.0')
15 self.assertEquals(str(version), '1.2')
17 def test_cmp_strict(self):
18 versions = (('1.5.1', '1.5.2b2', -1),
19 ('161', '3.10a', ValueError),
20 ('8.02', '8.02', 0),
21 ('3.4j', '1996.07.12', ValueError),
22 ('3.2.pl0', '3.1.1.6', ValueError),
23 ('2g6', '11g', ValueError),
24 ('0.9', '2.2', -1),
25 ('1.2.1', '1.2', 1),
26 ('1.1', '1.2.2', -1),
27 ('1.2', '1.1', 1),
28 ('1.2.1', '1.2.2', -1),
29 ('1.2.2', '1.2', 1),
30 ('1.2', '1.2.2', -1),
31 ('0.4.0', '0.4', 0),
32 ('1.13++', '5.5.kw', ValueError))
34 for v1, v2, wanted in versions:
35 try:
36 res = StrictVersion(v1).__cmp__(StrictVersion(v2))
37 except ValueError:
38 if wanted is ValueError:
39 continue
40 else:
41 raise AssertionError(("cmp(%s, %s) "
42 "shouldn't raise ValueError")
43 % (v1, v2))
44 self.assertEquals(res, wanted,
45 'cmp(%s, %s) should be %s, got %s' %
46 (v1, v2, wanted, res))
49 def test_cmp(self):
50 versions = (('1.5.1', '1.5.2b2', -1),
51 ('161', '3.10a', 1),
52 ('8.02', '8.02', 0),
53 ('3.4j', '1996.07.12', -1),
54 ('3.2.pl0', '3.1.1.6', 1),
55 ('2g6', '11g', -1),
56 ('0.960923', '2.2beta29', -1),
57 ('1.13++', '5.5.kw', -1))
60 for v1, v2, wanted in versions:
61 res = LooseVersion(v1).__cmp__(LooseVersion(v2))
62 self.assertEquals(res, wanted,
63 'cmp(%s, %s) should be %s, got %s' %
64 (v1, v2, wanted, res))
66 def test_suite():
67 return unittest.makeSuite(VersionTestCase)
69 if __name__ == "__main__":
70 unittest.main(defaultTest="test_suite")