summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-01-11 11:41:55 +0000
committerZac Medico <zmedico@gentoo.org>2008-01-11 11:41:55 +0000
commitaa0f91ba8b6da92a059830bc2d10c5c8552c733e (patch)
tree35f8cc475b50816d8c01f0803760e80230ba34b6
parent020d2ce7c8a81434de1d86d67e9594875720f3db (diff)
downloadportage-aa0f91ba8b6da92a059830bc2d10c5c8552c733e.tar.gz
portage-aa0f91ba8b6da92a059830bc2d10c5c8552c733e.tar.bz2
portage-aa0f91ba8b6da92a059830bc2d10c5c8552c733e.zip
* 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
-rw-r--r--pym/portage_versions.py8
-rw-r--r--tests/portage_versions/test_vercmp.py21
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]))