[Zope3-checkins] SVN: zope.testing/branches/benji-parallelize-subprocesses/src/zope/testing/testrunner/runner.py fix a bug (inherited from the trunk) that causes any subprocesses that generate

Benji York benji at zope.com
Fri Jul 4 20:59:12 EDT 2008


Log message for revision 88029:
  fix a bug (inherited from the trunk) that causes any subprocesses that generate
  output on stderr to report an error (and not have their successes, failure,
  etc. counted); needs tests
  

Changed:
  U   zope.testing/branches/benji-parallelize-subprocesses/src/zope/testing/testrunner/runner.py

-=-
Modified: zope.testing/branches/benji-parallelize-subprocesses/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/branches/benji-parallelize-subprocesses/src/zope/testing/testrunner/runner.py	2008-07-05 00:49:47 UTC (rev 88028)
+++ zope.testing/branches/benji-parallelize-subprocesses/src/zope/testing/testrunner/runner.py	2008-07-05 00:59:12 UTC (rev 88029)
@@ -410,15 +410,24 @@
         else:
             break
 
-    line = suberr.readline()
-    try:
-        ran, nfail, nerr = map(int, line.strip().split())
-    except KeyboardInterrupt:
-        raise
-    except:
-        raise SubprocessError(
-            'No subprocess summary found', line+suberr.read())
+    # Subprocesses may have spewed any number of things to stderr, so we'll
+    # keep looking until we find the information we're looking for.
+    whole_suberr = ''
+    while True:
+        line = suberr.readline()
+        whole_suberr += line
+        if not line:
+            raise SubprocessError(
+                'No subprocess summary found', whole_suberr)
 
+        try:
+            ran, nfail, nerr = map(int, line.strip().split())
+            break
+        except KeyboardInterrupt:
+            raise
+        except:
+            continue
+
     while nfail > 0:
         nfail -= 1
         failures.append((suberr.readline().strip(), None))



More information about the Zope3-Checkins mailing list