run-tests: teach unittest about warned results
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 20 Apr 2014 11:55:02 -0700
changeset 21433 ff4a270bd334
parent 21432 1a46f9635ef0
child 21434 a264fca9181b
run-tests: teach unittest about warned results
tests/run-tests.py
--- a/tests/run-tests.py	Sun Apr 20 11:52:41 2014 -0700
+++ b/tests/run-tests.py	Sun Apr 20 11:55:02 2014 -0700
@@ -998,6 +998,11 @@
         # sense to map it into skip some day.
         self.ignored = []
 
+        # We have a custom "warned" result that isn't present in any Python
+        # unittest implementation. It is very similar to failed. It may make
+        # sense to map it into fail some day.
+        self.warned = []
+
     # Polyfill.
     def addSkip(self, test, reason):
         self.skipped.append((test, reason))
@@ -1017,6 +1022,15 @@
             self.stream.write('i')
             self.stream.flush()
 
+    def addWarn(self, test, reason):
+        self.warned.append((test, reason))
+
+        if self.showAll:
+            self.stream.writeln('warned %s' % reason)
+        else:
+            self.stream.write('~')
+            self.stream.flush()
+
 class TextTestRunner(unittest.TextTestRunner):
     """Custom unittest test runner that uses appropriate settings."""
 
@@ -1313,7 +1327,7 @@
                 if code == '!':
                     self._result.failures.append((self, msg))
                 elif code == '~':
-                    pass
+                    self._result.addWarn(self, msg)
                 elif code == '.':
                     # Success is handled automatically by the built-in run().
                     pass