From aa0f91ba8b6da92a059830bc2d10c5c8552c733e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 11 Jan 2008 11:41:55 +0000 Subject: [PATCH] * 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 --- pym/portage_versions.py | 8 +------- tests/portage_versions/test_vercmp.py | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 11 deletions(-) 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])) -- 2.26.2