[svn r63584] killing more code, simplifying running of tests.
--HG-- branch : trunk
This commit is contained in:
parent
cca19f1183
commit
79793d50e2
|
@ -67,13 +67,12 @@ class CollectionReport(BaseReport):
|
||||||
""" Collection Report. """
|
""" Collection Report. """
|
||||||
skipped = failed = passed = False
|
skipped = failed = passed = False
|
||||||
|
|
||||||
def __init__(self, colitem, result, excinfo=None, when=None, outerr=None):
|
def __init__(self, colitem, result, excinfo=None, outerr=None):
|
||||||
self.colitem = colitem
|
self.colitem = colitem
|
||||||
if not excinfo:
|
if not excinfo:
|
||||||
self.passed = True
|
self.passed = True
|
||||||
self.result = result
|
self.result = result
|
||||||
else:
|
else:
|
||||||
self.when = when
|
|
||||||
self.outerr = outerr
|
self.outerr = outerr
|
||||||
self.longrepr = self.colitem._repr_failure_py(excinfo, outerr)
|
self.longrepr = self.colitem._repr_failure_py(excinfo, outerr)
|
||||||
if excinfo.errisinstance(Skipped):
|
if excinfo.errisinstance(Skipped):
|
||||||
|
|
|
@ -25,21 +25,20 @@ class RobustRun(object):
|
||||||
return "<%s colitem=%s>" %(self.__class__.__name__, self.colitem)
|
return "<%s colitem=%s>" %(self.__class__.__name__, self.colitem)
|
||||||
|
|
||||||
|
|
||||||
class ItemRunner(RobustRun):
|
def basic_run_report(item, pdb=None):
|
||||||
def run(self):
|
""" return report about setting up and running a test item. """
|
||||||
""" return result of running setup, execution, teardown procedures. """
|
|
||||||
excinfo = None
|
excinfo = None
|
||||||
capture = self.getcapture()
|
capture = item.config._getcapture()
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
when = "setup"
|
when = "setup"
|
||||||
self.colitem.config._setupstate.prepare(self.colitem)
|
item.config._setupstate.prepare(item)
|
||||||
try:
|
try:
|
||||||
when = "execute"
|
when = "execute"
|
||||||
res = self.colitem.runtest()
|
res = item.runtest()
|
||||||
finally:
|
finally:
|
||||||
when = "teardown"
|
when = "teardown"
|
||||||
self.colitem.config._setupstate.teardown_exact(self.colitem)
|
item.config._setupstate.teardown_exact(item)
|
||||||
when = "execute"
|
when = "execute"
|
||||||
finally:
|
finally:
|
||||||
outerr = capture.reset()
|
outerr = capture.reset()
|
||||||
|
@ -47,48 +46,28 @@ class ItemRunner(RobustRun):
|
||||||
raise
|
raise
|
||||||
except:
|
except:
|
||||||
excinfo = py.code.ExceptionInfo()
|
excinfo = py.code.ExceptionInfo()
|
||||||
return self.makereport(when, excinfo, outerr)
|
testrep = item.config.pytestplugins.call_firstresult(
|
||||||
|
"pytest_item_makereport", item=item,
|
||||||
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)
|
excinfo=excinfo, when=when, outerr=outerr)
|
||||||
if self.pdb and testrep.failed:
|
if pdb and testrep.failed:
|
||||||
tw = py.io.TerminalWriter()
|
tw = py.io.TerminalWriter()
|
||||||
testrep.toterminal(tw)
|
testrep.toterminal(tw)
|
||||||
self.pdb(excinfo)
|
pdb(excinfo)
|
||||||
return testrep
|
return testrep
|
||||||
|
|
||||||
class CollectorRunner(RobustRun):
|
def basic_collect_report(collector):
|
||||||
def run(self):
|
excinfo = res = None
|
||||||
""" return result of running setup, execution, teardown procedures. """
|
|
||||||
excinfo = None
|
|
||||||
res = NORESULT
|
|
||||||
capture = self.getcapture()
|
|
||||||
try:
|
try:
|
||||||
|
capture = collector.config._getcapture()
|
||||||
try:
|
try:
|
||||||
res = self.colitem._memocollect()
|
res = collector._memocollect()
|
||||||
finally:
|
finally:
|
||||||
outerr = capture.reset()
|
outerr = capture.reset()
|
||||||
except (Exit, KeyboardInterrupt):
|
except (Exit, KeyboardInterrupt):
|
||||||
raise
|
raise
|
||||||
except:
|
except:
|
||||||
excinfo = py.code.ExceptionInfo()
|
excinfo = py.code.ExceptionInfo()
|
||||||
return self.makereport(res, "execute", excinfo, outerr)
|
return event.CollectionReport(collector, res, excinfo, outerr)
|
||||||
|
|
||||||
def makereport(self, res, when, excinfo, outerr):
|
|
||||||
return event.CollectionReport(self.colitem, res, excinfo, when, outerr)
|
|
||||||
|
|
||||||
NORESULT = object()
|
|
||||||
#
|
|
||||||
# public entrypoints / objects
|
|
||||||
#
|
|
||||||
|
|
||||||
def basic_collect_report(item):
|
|
||||||
return CollectorRunner(item).run()
|
|
||||||
|
|
||||||
def basic_run_report(item, pdb=None):
|
|
||||||
return ItemRunner(item, pdb=pdb).run()
|
|
||||||
|
|
||||||
from cPickle import Pickler, Unpickler
|
from cPickle import Pickler, Unpickler
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
|
|
Loading…
Reference in New Issue