diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-01-11 08:19:55 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-01-11 08:19:55 +0000 |
commit | 6d98d4788348f34711420a8abcb62bb26d161871 (patch) | |
tree | ba1771c2a4a787fe4d5adfc8d6822c3d3be7a31e | |
parent | 573ce721bd4ed67b979b56fdd996aa21fdb8faf2 (diff) | |
download | portage-6d98d4788348f34711420a8abcb62bb26d161871.tar.gz portage-6d98d4788348f34711420a8abcb62bb26d161871.tar.bz2 portage-6d98d4788348f34711420a8abcb62bb26d161871.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.
svn path=/main/trunk/; revision=9178
-rw-r--r-- | pym/portage/tests/versions/test_vercmp.py | 21 | ||||
-rw-r--r-- | pym/portage/versions.py | 8 |
2 files changed, 18 insertions, 11 deletions
diff --git a/pym/portage/tests/versions/test_vercmp.py b/pym/portage/tests/versions/test_vercmp.py index c25ed954b..d8837b852 100644 --- a/pym/portage/tests/versions/test_vercmp.py +++ b/pym/portage/tests/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])) diff --git a/pym/portage/versions.py b/pym/portage/versions.py index d4699d1ab..115064578 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 |