diff options
-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 |