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