* Make pkgcmp() pass the ebuild revision directly into vercmp() since
authorZac Medico <zmedico@gentoo.org>
Fri, 11 Jan 2008 11:41:55 +0000 (11:41 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 11 Jan 2008 11:41:55 +0000 (11:41 -0000)
  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

pym/portage_versions.py
tests/portage_versions/test_vercmp.py

index cf8d20d4f68d829a3db548b58d7a5f1c52a0669c..6cf7a199829cc8181b4f47d3afc0f8c79a30b564 100644 (file)
@@ -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
 
 
index 59844d343ba864d7d6cdc86a49a620c05998b8cf..890cc55172b30652f67273d773f26cad847e47a7 100644 (file)
@@ -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]))