[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