SVN: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/ moved filtering of functional layers using --resume-layer and --layer to the

Christian Theune <[email protected]>
Newsgroups gmane.comp.web.zope.zope3.cvs
Message-ID <20080504190301.52832399C4__44480.8195149109$1209927840$gmane$org@mail.zope.org>
Log message for revision 86411:
  moved filtering of functional layers using --resume-layer and --layer to the
  filter 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

-=-
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 17:05:17 UTC (rev 86410)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py	2008-05-04 19:02:58 UTC (rev 86411)
@@ -26,10 +26,10 @@
     active = True
 
     def global_setup(self):
-        tests = self.runner.tests_by_layer_name
+        layers = self.runner.tests_by_layer_name
         options = self.runner.options
 
-        if 'unit' in tests:
+        if 'unit' in layers:
             # We start out assuming unit tests should run and look for reasons
             # why they shouldn't be run.
             should_run = True
@@ -46,8 +46,22 @@
                 should_run = False
 
             if not should_run:
-                tests.pop('unit')
+                layers.pop('unit')
 
+        if self.runner.options.resume_layer is not None:
+            for name in list(layers):
+                if name != self.runner.options.resume_layer:
+                    layers.pop(name)
+        elif self.runner.options.layer:
+            for name in list(layers):
+                for pat in self.runner.options.layer:
+                    if pat(name):
+                        # This layer matches a pattern selecting this layer
+                        break
+                else:
+                    # No pattern matched this name so we remove it
+                    layers.pop(name)
+
         if self.runner.options.verbose:
             if self.runner.options.all:
                 msg = "Running tests at all levels"

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 17:05:17 UTC (rev 86410)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py	2008-05-04 19:02:58 UTC (rev 86411)
@@ -220,19 +220,6 @@
 
         layers_to_run = list(self.ordered_layers())
 
-        if self.options.resume_layer is not None:
-            layers_to_run = [
-                (layer_name, layer, tests)
-                for (layer_name, layer, tests) in layers_to_run
-                if layer_name == self.options.resume_layer
-            ]
-        elif self.options.layer:
-            layers_to_run = [
-                (layer_name, layer, tests)
-                for (layer_name, layer, tests) in layers_to_run
-                if filter(None, [pat(layer_name) for pat in self.options.layer])
-            ]
-
         for layer_name, layer, tests in layers_to_run:
             self.nlayers += 1
             try:
@@ -413,9 +400,11 @@
                 ])
 
         subin, subout, suberr = os.popen3(args)
+        subout_total = ''
         while True:
             try:
                 for l in subout:
+                    subout_total += l
                     sys.stdout.write(l)
             except IOError, e:
                 if e.errno == errno.EINTR:
@@ -435,7 +424,8 @@
             raise
         except:
             raise SubprocessError(
-                'No subprocess summary found', line+suberr.read())
+                'No subprocess summary found', subout_total)
+                #'No subprocess summary found', line+suberr.read())
 
         while nfail > 0:
             nfail -= 1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.