[py-svn] r63579 - py/trunk/py/test

hpk at codespeak.net hpk at codespeak.net
Fri Apr 3 19:39:51 CEST 2009


Author: hpk
Date: Fri Apr  3 19:39:49 2009
New Revision: 63579

Modified:
   py/trunk/py/test/runner.py
Log:
step one in simplifying runtest() collect() semantics 


Modified: py/trunk/py/test/runner.py
==============================================================================
--- py/trunk/py/test/runner.py	(original)
+++ py/trunk/py/test/runner.py	Fri Apr  3 19:39:49 2009
@@ -11,7 +11,6 @@
 from py.__.test import event
 from py.__.test.outcome import Exit
 from py.__.test.dist.mypickle import ImmutablePickler
-import py.__.test.custompdb
 
 class RobustRun(object):
     """ a robust setup/execute/teardown protocol used both for test collectors 
@@ -25,20 +24,22 @@
     def __repr__(self):
         return "<%s colitem=%s>" %(self.__class__.__name__, self.colitem)
 
+
+class ItemRunner(RobustRun):
     def run(self):
         """ return result of running setup, execution, teardown procedures. """ 
         excinfo = None
-        res = NORESULT
         capture = self.getcapture()
         try:
             try:
                 when = "setup"
-                self.setup()
+                self.colitem.config._setupstate.prepare(self.colitem)
                 try:
-                    res = self.execute()
+                    when = "execute"
+                    res = self.colitem.runtest()
                 finally:
                     when = "teardown"
-                    self.teardown()
+                    self.colitem.config._setupstate.teardown_exact(self.colitem)
                     when = "execute"
             finally:
                 outerr = capture.reset()
@@ -46,19 +47,9 @@
             raise
         except: 
             excinfo = py.code.ExceptionInfo()
-        return self.makereport(res, when, excinfo, outerr)
-
-class ItemRunner(RobustRun):
-    def setup(self):
-        self.colitem.config._setupstate.prepare(self.colitem)
-    def teardown(self):
-        self.colitem.config._setupstate.teardown_exact(self.colitem)
-    def execute(self):
-        #self.colitem.config.pytestplugins.pre_execute(self.colitem)
-        self.colitem.runtest()
-        #self.colitem.config.pytestplugins.post_execute(self.colitem)
+        return self.makereport(when, excinfo, outerr)
 
-    def makereport(self, res, when, excinfo, outerr):
+    def makereport(self, when, excinfo, outerr):
         testrep = self.colitem.config.pytestplugins.call_firstresult(
             "pytest_item_makereport", item=self.colitem, 
             excinfo=excinfo, when=when, outerr=outerr)
@@ -69,12 +60,22 @@
         return testrep
 
 class CollectorRunner(RobustRun):
-    def setup(self):
-        pass
-    def teardown(self):
-        pass
-    def execute(self):
-        return self.colitem._memocollect()
+    def run(self):
+        """ return result of running setup, execution, teardown procedures. """ 
+        excinfo = None
+        res = NORESULT
+        capture = self.getcapture()
+        try:
+            try:
+                res = self.colitem._memocollect()
+            finally:
+                outerr = capture.reset()
+        except (Exit, KeyboardInterrupt):
+            raise
+        except: 
+            excinfo = py.code.ExceptionInfo()
+        return self.makereport(res, "execute", excinfo, outerr)
+
     def makereport(self, res, when, excinfo, outerr):
         return event.CollectionReport(self.colitem, res, excinfo, when, outerr)
    



More information about the pytest-commit mailing list