Fix a bug in comparing versions
This commit is contained in:
parent
134f4f5fd9
commit
90b2ee1423
2 changed files with 19 additions and 2 deletions
|
@ -39,12 +39,17 @@ class Version(object):
|
||||||
return str_ > str_other
|
return str_ > str_other
|
||||||
|
|
||||||
for self_c, other_c in zip(self.components(), other.components()):
|
for self_c, other_c in zip(self.components(), other.components()):
|
||||||
if num_gt(self_c, other_c):
|
if self_c == other_c:
|
||||||
return True
|
continue
|
||||||
|
else:
|
||||||
|
return num_gt(self_c, other_c)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Note: not using functools.total_ordering to support Python 2.6
|
# Note: not using functools.total_ordering to support Python 2.6
|
||||||
|
|
||||||
|
def __lt__(self, other):
|
||||||
|
return not (self == other) and not (self > other)
|
||||||
|
|
||||||
|
|
||||||
def proc_version():
|
def proc_version():
|
||||||
v = open('/proc/version', 'r')
|
v = open('/proc/version', 'r')
|
||||||
|
|
|
@ -58,6 +58,18 @@ class VersionTestCase(unittest.TestCase):
|
||||||
self.assertGreater(Version('3.12-12'), Version('3.12-2'))
|
self.assertGreater(Version('3.12-12'), Version('3.12-2'))
|
||||||
self.assertGreater(Version('2.6.32-5foo1'), Version('2.6.32-5foo0'))
|
self.assertGreater(Version('2.6.32-5foo1'), Version('2.6.32-5foo0'))
|
||||||
|
|
||||||
|
self.assertGreater(Version('3.16.7-ckt9-3~deb8u1'),
|
||||||
|
Version('3.14.15-2'))
|
||||||
|
self.assertLess(Version('3.14.15-2'),
|
||||||
|
Version('3.16.7-ckt9-3~deb8u1'))
|
||||||
|
|
||||||
|
def testSorting(self):
|
||||||
|
l = [Version('3.16.5-1'), Version('3.2.60-1+deb7u3'),
|
||||||
|
Version('3.16.3-2'), Version('3.16.7-ckt9-3~deb8u1'),
|
||||||
|
Version('3.14.15-2')]
|
||||||
|
self.assertEqual(sorted(l)[0], Version('3.2.60-1+deb7u3'))
|
||||||
|
self.assertEqual(sorted(l)[-1], Version('3.16.7-ckt9-3~deb8u1'))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue