From: Zac Medico Date: Fri, 11 Jan 2008 11:41:55 +0000 (-0000) Subject: * Make pkgcmp() pass the ebuild revision directly into vercmp() since X-Git-Tag: v2.1.4~8 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=aa0f91ba8b6da92a059830bc2d10c5c8552c733e;p=portage.git * Make pkgcmp() pass the ebuild revision directly into vercmp() since there is code there to handle it already. This eliminates some redundant revision comparison code. Thanks to peper for the patch. * Add some vercmp() test cases for comparison of ebuild revisions. (trunk r9178) svn path=/main/branches/2.1.2/; revision=9182 --- diff --git a/pym/portage_versions.py b/pym/portage_versions.py index cf8d20d4f..6cf7a1998 100644 --- a/pym/portage_versions.py +++ b/pym/portage_versions.py @@ -189,17 +189,11 @@ def pkgcmp(pkg1, pkg2): """ if pkg1[0] != pkg2[0]: return None - mycmp=vercmp(pkg1[1],pkg2[1]) + mycmp = vercmp("-".join(pkg1[1:]), "-".join(pkg2[1:])) if mycmp>0: return 1 if mycmp<0: return -1 - r1=float(pkg1[2][1:]) - r2=float(pkg2[2][1:]) - if r1>r2: - return 1 - if r2>r1: - return -1 return 0 diff --git a/tests/portage_versions/test_vercmp.py b/tests/portage_versions/test_vercmp.py index 59844d343..890cc5517 100644 --- a/tests/portage_versions/test_vercmp.py +++ b/tests/portage_versions/test_vercmp.py @@ -12,7 +12,9 @@ class VerCmpTestCase(TestCase): def testVerCmpGreater(self): - tests = [ ( "6.0", "5.0"), ("5.0","5")] + tests = [ ( "6.0", "5.0"), ("5.0","5"), + ("1.0-r1", "1.0-r0"), + ("1.0-r1", "1.0")] for test in tests: self.failIf( vercmp( test[0], test[1] ) <= 0, msg="%s < %s? Wrong!" % (test[0],test[1]) ) @@ -24,20 +26,31 @@ class VerCmpTestCase(TestCase): ("1.0_alpha2", "1.0_p2"),("1.0_alpha1", "1.0_beta1"),("1.0_beta3","1.0_rc3"), ("1.001000000000000000001", "1.001000000000000000002"), ("1.00100000000", "1.0010000000000000001"), - ("1.01", "1.1")] + ("1.01", "1.1"), + ("1.0-r0", "1.0-r1"), + ("1.0", "1.0-r1")] for test in tests: self.failIf( vercmp( test[0], test[1]) >= 0, msg="%s > %s? Wrong!" % (test[0],test[1])) def testVerCmpEqual(self): - tests = [ ("4.0", "4.0") ] + tests = [ ("4.0", "4.0"), + ("1.0", "1.0"), + ("1.0-r0", "1.0"), + ("1.0", "1.0-r0"), + ("1.0-r0", "1.0-r0"), + ("1.0-r1", "1.0-r1")] for test in tests: self.failIf( vercmp( test[0], test[1]) != 0, msg="%s != %s? Wrong!" % (test[0],test[1])) def testVerNotEqual(self): tests = [ ("1","2"),("1.0_alpha","1.0_pre"),("1.0_beta","1.0_alpha"), - ("0", "0.0")] + ("0", "0.0"), + ("1.0-r0", "1.0-r1"), + ("1.0-r1", "1.0-r0"), + ("1.0", "1.0-r1"), + ("1.0-r1", "1.0")] for test in tests: self.failIf( vercmp( test[0], test[1]) == 0, msg="%s == %s? Wrong!" % (test[0],test[1]))