subunit: Cope with lowercase test results in tap2subunit.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 11 Apr 2010 18:56:02 +0000 (20:56 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Sun, 11 Apr 2010 18:57:33 +0000 (20:57 +0200)
Also submitted upstream.

lib/subunit/python/subunit/__init__.py
lib/subunit/python/subunit/tests/test_tap2subunit.py

index 6b65ae42dce06bd5c2bfcabbe60a462520ee972f..4b25ca3a39fc7a3dfd44aad75966e95f5108b052 100644 (file)
@@ -913,7 +913,7 @@ def TAP2SubUnit(tap, subunit):
                     subunit.write("]\n")
                 continue
         # not a plan line, or have seen one before
-        match = re.match("(ok|not ok)(?:\s+(\d+)?)?(?:\s+([^#]*[^#\s]+)\s*)?(?:\s+#\s+(TODO|SKIP)(?:\s+(.*))?)?\n", line)
+        match = re.match("(ok|not ok)(?:\s+(\d+)?)?(?:\s+([^#]*[^#\s]+)\s*)?(?:\s+#\s+(TODO|SKIP|skip|todo)(?:\s+(.*))?)?\n", line)
         if match:
             # new test, emit current one.
             _emit_test()
@@ -927,9 +927,9 @@ def TAP2SubUnit(tap, subunit):
             else:
                 description = ' ' + description
             if directive is not None:
-                if directive == 'TODO':
+                if directive.upper() == 'TODO':
                     result = 'xfail'
-                elif directive == 'SKIP':
+                elif directive.upper() == 'SKIP':
                     result = 'skip'
                 if directive_comment is not None:
                     log.append(directive_comment)
index febfe9d441336be3f8f396c5cbb6960ef87717e0..c4ca4cdb3af3f4e4c1320dc3403e0a3adebe6329 100644 (file)
@@ -18,9 +18,7 @@
 
 import unittest
 from StringIO import StringIO
-import os
 import subunit
-import sys
 
 
 class TestTAP2SubUnit(unittest.TestCase):
@@ -125,6 +123,19 @@ class TestTAP2SubUnit(unittest.TestCase):
             ],
             self.subunit.getvalue().splitlines())
 
+    def test_ok_skip_number_comment_lowercase(self):
+        self.tap.write("ok 1 # skip no samba environment available, skipping compilation\n")
+        self.tap.seek(0)
+        result = subunit.TAP2SubUnit(self.tap, self.subunit)
+        self.assertEqual(0, result)
+        self.assertEqual([
+            "test test 1",
+            "skip test 1 [", 
+            "no samba environment available, skipping compilation",
+            "]"
+            ],
+            self.subunit.getvalue().splitlines())
+
     def test_ok_number_description_SKIP_skip_comment(self):
         # A file
         # ok 1 foo  # SKIP Not done yet