test_version.py (2327B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_version.py 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.assertEqual(version.version, (1, 2, 3)) 11 self.assertEqual(version.prerelease, ('a', 1)) 12 self.assertEqual(str(version), '1.2.3a1') 13 version = StrictVersion('1.2.0') 14 self.assertEqual(str(version), '1.2') 15 16 def test_cmp_strict(self): 17 versions = (('1.5.1', '1.5.2b2', -1), 18 ('161', '3.10a', ValueError), 19 ('8.02', '8.02', 0), 20 ('3.4j', '1996.07.12', ValueError), 21 ('3.2.pl0', '3.1.1.6', ValueError), 22 ('2g6', '11g', ValueError), 23 ('0.9', '2.2', -1), 24 ('1.2.1', '1.2', 1), 25 ('1.1', '1.2.2', -1), 26 ('1.2', '1.1', 1), 27 ('1.2.1', '1.2.2', -1), 28 ('1.2.2', '1.2', 1), 29 ('1.2', '1.2.2', -1), 30 ('0.4.0', '0.4', 0), 31 ('1.13++', '5.5.kw', ValueError)) 32 for v1, v2, wanted in versions: 33 try: 34 res = StrictVersion(v1).__cmp__(StrictVersion(v2)) 35 except ValueError: 36 if wanted is ValueError: 37 continue 38 else: 39 raise AssertionError("cmp(%s, %s) shouldn't raise ValueError" % (v1, v2)) 40 41 self.assertEqual(res, wanted, 'cmp(%s, %s) should be %s, got %s' % (v1, 42 v2, 43 wanted, 44 res)) 45 46 def test_cmp(self): 47 versions = (('1.5.1', '1.5.2b2', -1), 48 ('161', '3.10a', 1), 49 ('8.02', '8.02', 0), 50 ('3.4j', '1996.07.12', -1), 51 ('3.2.pl0', '3.1.1.6', 1), 52 ('2g6', '11g', -1), 53 ('0.960923', '2.2beta29', -1), 54 ('1.13++', '5.5.kw', -1)) 55 for v1, v2, wanted in versions: 56 res = LooseVersion(v1).__cmp__(LooseVersion(v2)) 57 self.assertEqual(res, wanted, 'cmp(%s, %s) should be %s, got %s' % (v1, 58 v2, 59 wanted, 60 res)) 61 62 63 def test_suite(): 64 return unittest.makeSuite(VersionTestCase) 65 66 67 if __name__ == '__main__': 68 unittest.main(defaultTest='test_suite')