|
51813
|
1 """Tests for distutils.version."""
|
|
|
2 import unittest
|
|
|
3 from distutils.version import LooseVersion
|
|
|
4 from distutils.version import StrictVersion
|
|
|
5
|
|
|
6 class VersionTestCase(unittest.TestCase):
|
|
|
7
|
|
|
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')
|
|
|
13
|
|
|
14 version = StrictVersion('1.2.0')
|
|
|
15 self.assertEquals(str(version), '1.2')
|
|
|
16
|
|
|
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))
|
|
|
33
|
|
|
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))
|
|
|
47
|
|
|
48
|
|
|
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))
|
|
|
58
|
|
|
59
|
|
|
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))
|
|
|
65
|
|
|
66 def test_suite():
|
|
|
67 return unittest.makeSuite(VersionTestCase)
|
|
|
68
|
|
|
69 if __name__ == "__main__":
|
|
|
70 unittest.main(defaultTest="test_suite")
|