summaryrefslogtreecommitdiff
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
parentAdd a DESCRIPTION.toolong warning for when the DESCRIPTION line is (diff)
downloadportage-multirepo-aa0f91ba8b6da92a059830bc2d10c5c8552c733e.tar.gz
portage-multirepo-aa0f91ba8b6da92a059830bc2d10c5c8552c733e.tar.bz2
portage-multirepo-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 cf8d20d4..6cf7a199 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 59844d34..890cc551 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]))