[Zope3-checkins] SVN: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/ Moved some of the subprocess management into its own feature.

Christian Theune ct at gocept.com
Sun May 4 12:32:35 EDT 2008


Log message for revision 86404:
  Moved some of the subprocess management into its own feature.
  

Changed:
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
  A   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/subprocess.py

-=-
Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py	2008-05-04 16:31:37 UTC (rev 86403)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py	2008-05-04 16:32:34 UTC (rev 86404)
@@ -47,3 +47,10 @@
 
             if not should_run:
                 tests.pop('unit')
+
+        if self.runner.options.verbose:
+            if self.runner.options.all:
+                msg = "Running tests at all levels"
+            else:
+                msg = "Running tests at level %d" % self.runner.options.at_level
+            self.runner.options.output.info(msg)

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py	2008-05-04 16:31:37 UTC (rev 86403)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py	2008-05-04 16:32:34 UTC (rev 86404)
@@ -44,6 +44,7 @@
 import zope.testing.testrunner.filter
 import zope.testing.testrunner.garbagecollection
 import zope.testing.testrunner.listing
+import zope.testing.testrunner.subprocess
 
 
 PYREFCOUNT_PATTERN = re.compile('\[[0-9]+ refs\]')
@@ -129,17 +130,6 @@
         for feature in self.features:
             feature.global_setup()
 
-        # XXX Where should this go?
-        if self.options.resume_layer:
-            self.original_stderr = sys.stderr
-            sys.stderr = sys.stdout
-        elif self.options.verbose:
-            if self.options.all:
-                msg = "Running tests at all levels"
-            else:
-                msg = "Running tests at level %d" % self.options.at_level
-            self.options.output.info(msg)
-
         # Late setup
         #
         # Some system tools like profilers are really bad with stack frames.
@@ -204,6 +194,7 @@
         self.features.append(zope.testing.testrunner.garbagecollection.Threshold(self))
         self.features.append(zope.testing.testrunner.garbagecollection.Debug(self))
         self.features.append(zope.testing.testrunner.find.Find(self))
+        self.features.append(zope.testing.testrunner.subprocess.SubProcess(self))
         self.features.append(zope.testing.testrunner.filter.Filter(self))
         self.features.append(zope.testing.testrunner.listing.Listing(self))
 
@@ -267,16 +258,7 @@
         self.failed = bool(self.import_errors or self.failures or self.errors)
 
     def report(self):
-        if self.options.resume_layer:
-            sys.stdout.close()
-            # Communicate with the parent.  The protocol is obvious:
-            print >> self.original_stderr, self.ran, len(self.failures), len(self.errors)
-            for test, exc_info in self.failures:
-                print >> self.original_stderr, ' '.join(str(test).strip().split('\n'))
-            for test, exc_info in self.errors:
-                print >> self.original_stderr, ' '.join(str(test).strip().split('\n'))
-
-        else:
+        if not self.options.resume_layer:
             if self.options.verbose:
                 self.options.output.tests_with_errors(self.errors)
                 self.options.output.tests_with_failures(self.failures)
@@ -286,7 +268,6 @@
                                            len(self.errors), self.total_time)
 
 
-
 def run_tests(options, tests, name, failures, errors):
     repeat = options.repeat or 1
     repeat_range = iter(range(repeat))

Added: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/subprocess.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/subprocess.py	                        (rev 0)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/subprocess.py	2008-05-04 16:32:34 UTC (rev 86404)
@@ -0,0 +1,44 @@
+##############################################################################
+#
+# Copyright (c) 2004-2008 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Subprocess support.
+
+$Id: __init__.py 86218 2008-05-03 14:17:26Z ctheune $
+"""
+
+import sys
+import time
+import zope.testing.testrunner.feature
+
+
+class SubProcess(zope.testing.testrunner.feature.Feature):
+    """Lists all tests in the report instead of running the tests."""
+
+    def __init__(self, runner):
+        super(SubProcess, self).__init__(runner)
+        self.active = bool(runner.options.resume_layer)
+
+    def global_setup(self):
+        self.original_stderr = sys.stderr
+        sys.stderr = sys.stdout
+        self.runner.options.verbose = False
+
+    def report(self):
+        sys.stdout.close()
+        # Communicate with the parent.  The protocol is obvious:
+        print >> self.original_stderr, self.runner.ran, \
+                len(self.runner.failures), len(self.runner.errors)
+        for test, exc_info in self.runner.failures:
+            print >> self.original_stderr, ' '.join(str(test).strip().split('\n'))
+        for test, exc_info in self.runner.errors:
+            print >> self.original_stderr, ' '.join(str(test).strip().split('\n'))


Property changes on: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/subprocess.py
___________________________________________________________________
Name: svn:eol-style
   + native



More information about the Zope3-Checkins mailing list