Cope with other_failures being the same.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 10 Nov 2010 05:41:33 +0000 (06:41 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 10 Nov 2010 05:41:33 +0000 (06:41 +0100)
buildfarm/data.py
buildfarm/tests/test_data.py

index b5b4fa0cf9a4111296083bec09f60f51e09b4d32..47436c501f95f7cc11b746609a45ead251f3577a 100644 (file)
@@ -59,10 +59,12 @@ class BuildStatus(object):
 
     def __cmp__(self, other):
 
+        other_extra = other.other_failures - self.other_failures
+        self_extra = self.other_failures - other.other_failures
         # Give more importance to other failures
-        if len(other.other_failures):
+        if other_extra:
             return 1
-        if len(self.other_failures):
+        if self_extra:
             return -1
 
         la = len(self.stages)
index 939a742fb7b4b7540acac0e5f91164ee3513857f..d5f53d3fbc5899bcfba769ee100f18c31902e683 100755 (executable)
@@ -259,14 +259,20 @@ class BuildStatusTest(testtools.TestCase):
 
         self.assertEquals(cmp(a, b), 0)
 
+    def test_cmp_empty(self):
         self.assertEquals(cmp(data.BuildStatus(), data.BuildStatus()), 0)
 
+    def test_cmp_other_failures(self):
+        self.assertEquals(cmp(
+            data.BuildStatus((), set(["foo"])), data.BuildStatus((), set(["foo"]))),
+            0)
+
     def test_cmp_bigger(self):
         a = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 3)])
         b = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 2)])
         c = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3)])
-        d = data.BuildStatus([], ("super error"))
-        e = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 1)], ("super error"))
+        d = data.BuildStatus([], set(["super error"]))
+        e = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 1)], set(["super error"]))
 
         # less stage means smaller, more error/higher error code means smaller as well
         self.assertEquals(cmp(b, a), 1)
@@ -281,8 +287,8 @@ class BuildStatusTest(testtools.TestCase):
         a = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 2)])
         b = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 1)])
         c = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3)])
-        d = data.BuildStatus([], ("super error"))
-        e = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 1)], ("super error"))
+        d = data.BuildStatus([], set(["super error"]))
+        e = data.BuildStatus([("CONFIGURE", 2), ("TEST", 3), ("CC_CHECKER", 1)], set(["super error"]))
 
         # less stage means smaller, more error/higher error code means smaller as well
         self.assertEquals(cmp(a, b), -1)
@@ -292,3 +298,5 @@ class BuildStatusTest(testtools.TestCase):
         self.assertEquals(cmp(d, c), -1)
 
         self.assertEquals(cmp(e, c), -1)
+
+        self.assertEquals(cmp(d, e), -1)