diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-01-11 11:41:55 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-01-11 11:41:55 +0000 |
commit | aa0f91ba8b6da92a059830bc2d10c5c8552c733e (patch) | |
tree | 35f8cc475b50816d8c01f0803760e80230ba34b6 | |
parent | Add a DESCRIPTION.toolong warning for when the DESCRIPTION line is (diff) | |
download | portage-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.py | 8 | ||||
-rw-r--r-- | 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 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])) |