SVN: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/ Moved timings to more general statistics feature which is also responsible to

Christian Theune <[email protected]>
Newsgroups gmane.comp.web.zope.zope3.cvs
Message-ID <20080504193052.1ABF3399DC__34282.9453562901$1209929511$gmane$org@mail.zope.org>
Log message for revision 86416:
  Moved timings to more general statistics feature which is also responsible to
  report the total ran tests summary.
  

Changed:
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/feature.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/interfaces.py
  U   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py
  A   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/statistics.py
  D   zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/timing.py

-=-
Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/feature.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/feature.py	2008-05-04 19:24:05 UTC (rev 86415)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/feature.py	2008-05-04 19:30:51 UTC (rev 86416)
@@ -40,6 +40,14 @@
         """
         pass
 
+    def layer_setup(self, layer):
+        """Executed once after a layer was set up."""
+        pass
+
+    def layer_teardown(self, layer):
+        """Executed once after a layer was run."""
+        pass
+
     def test_setup(self):
         """Executed once before each test."""
         pass

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 19:24:05 UTC (rev 86415)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/filter.py	2008-05-04 19:30:51 UTC (rev 86416)
@@ -77,7 +77,3 @@
         if self.runner.options.verbose:
             self.runner.options.output.tests_with_errors(self.runner.errors)
             self.runner.options.output.tests_with_failures(self.runner.failures)
-
-        if self.runner.nlayers != 1:
-            self.runner.options.output.totals(self.runner.ran, len(self.runner.failures),
-                                       len(self.runner.errors), self.runner.total_time)

Modified: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/interfaces.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/interfaces.py	2008-05-04 19:24:05 UTC (rev 86415)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/interfaces.py	2008-05-04 19:30:51 UTC (rev 86416)
@@ -47,10 +47,16 @@
 
         """
 
-    def test_setup():
+    def layer_setup(layer):
+        """Executed once after a layer was set up."""
+
+    def layer_teardown(layer):
+        """Executed once after a layer was run."""
+
+    def test_setup(test):
         """Executed once before each test."""
 
-    def test_teardown():
+    def test_teardown(test):
         """Executed once after each test."""
 
     def early_teardown():

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 19:24:05 UTC (rev 86415)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/runner.py	2008-05-04 19:30:51 UTC (rev 86416)
@@ -40,10 +40,10 @@
 import zope.testing.testrunner.logsupport
 import zope.testing.testrunner.selftest
 import zope.testing.testrunner.profiling
-import zope.testing.testrunner.timing
 import zope.testing.testrunner.filter
 import zope.testing.testrunner.garbagecollection
 import zope.testing.testrunner.listing
+import zope.testing.testrunner.statistics
 import zope.testing.testrunner.subprocess
 
 
@@ -94,7 +94,6 @@
         self.ran = 0
         self.failures = []
         self.errors = []
-        self.nlayers = 0
 
         self.show_report = True
         self.do_run_tests = True
@@ -188,13 +187,13 @@
         self.features.append(zope.testing.testrunner.coverage.Coverage(self))
         self.features.append(zope.testing.testrunner.doctest.DocTest(self))
         self.features.append(zope.testing.testrunner.profiling.Profiling(self))
-        self.features.append(zope.testing.testrunner.timing.Timing(self))
         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))
+        self.features.append(zope.testing.testrunner.statistics.Statistics(self))
 
         # Remove all features that aren't activated
         self.features = [f for f in self.features if f.active]
@@ -208,7 +207,8 @@
         if 'unit' in self.tests_by_layer_name:
             tests = self.tests_by_layer_name.pop('unit')
             self.options.output.info("Running unit tests:")
-            self.nlayers += 1
+            for feature in self.features:
+                feature.layer_setup('unit')
             try:
                 self.ran += run_tests(self.options, tests, 'unit',
                                       self.failures, self.errors)
@@ -221,7 +221,8 @@
         layers_to_run = list(self.ordered_layers())
 
         for layer_name, layer, tests in layers_to_run:
-            self.nlayers += 1
+            for feature in self.features:
+                feature.layer_setup(layer)
             try:
                 self.ran += run_layer(self.options, layer_name, layer, tests,
                                       setup_layers, self.failures, self.errors)
@@ -436,7 +437,6 @@
     return rantotal
 
 
-
 def tear_down_unneeded(options, needed, setup_layers, optional=False):
     # Tear down any layers not needed for these tests. The unneeded
     # layers might interfere.

Added: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/statistics.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/statistics.py	                        (rev 0)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/statistics.py	2008-05-04 19:30:51 UTC (rev 86416)
@@ -0,0 +1,48 @@
+##############################################################################
+#
+# 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.
+#
+##############################################################################
+"""Test runner statistics
+
+$Id: __init__.py 86218 2008-05-03 14:17:26Z ctheune $
+"""
+
+import time
+import zope.testing.testrunner.feature
+
+
+class Statistics(zope.testing.testrunner.feature.Feature):
+
+    active = True
+    layers_run = 0
+    tests_run = 0
+
+    def late_setup(self):
+        self.start_time = time.time()
+
+    def early_teardown(self):
+        self.end_time = time.time()
+
+    def global_teardown(self):
+        self.total_time = self.end_time - self.start_time
+
+    def layer_setup(self, layer):
+        self.layers_run += 1
+
+    def report(self):
+        if not self.runner.do_run_tests:
+            return
+        if self.layers_run == 1:
+            return
+        self.runner.options.output.totals(
+            self.runner.ran, len(self.runner.failures), len(self.runner.errors),
+            self.total_time)


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

Deleted: zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/timing.py
===================================================================
--- zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/timing.py	2008-05-04 19:24:05 UTC (rev 86415)
+++ zope.testing/branches/ctheune-cleanup/src/zope/testing/testrunner/timing.py	2008-05-04 19:30:51 UTC (rev 86416)
@@ -1,34 +0,0 @@
-##############################################################################
-#
-# 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.
-#
-##############################################################################
-"""Timing support.
-
-$Id: __init__.py 86218 2008-05-03 14:17:26Z ctheune $
-"""
-
-import time
-import zope.testing.testrunner.feature
-
-
-class Timing(zope.testing.testrunner.feature.Feature):
-
-    active = True
-
-    def late_setup(self):
-        self.start_time = time.time()
-
-    def early_teardown(self):
-        self.end_time = time.time()
-
-    def global_teardown(self):
-        self.runner.total_time = self.end_time - self.start_time
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.