[py-svn] r63593 - in py/trunk/py/test: . dist dist/testing plugin
hpk at codespeak.net
hpk at codespeak.net
Sat Apr 4 00:36:34 CEST 2009
Author: hpk
Date: Sat Apr 4 00:36:29 2009
New Revision: 63593
Modified:
py/trunk/py/test/dist/testing/test_dsession.py
py/trunk/py/test/dist/testing/test_txnode.py
py/trunk/py/test/dist/txnode.py
py/trunk/py/test/plugin/pytest_default.py
py/trunk/py/test/pytestplugin.py
py/trunk/py/test/session.py
Log:
have plugin method run the test item and report about it
Modified: py/trunk/py/test/dist/testing/test_dsession.py
==============================================================================
--- py/trunk/py/test/dist/testing/test_dsession.py (original)
+++ py/trunk/py/test/dist/testing/test_dsession.py Sat Apr 4 00:36:29 2009
@@ -7,9 +7,10 @@
XSpec = py.execnet.XSpec
def run(item, node):
- report = item.config.pytestplugins.do_itemrun(item)
- report.node = node
- return report
+ from py.__.test.runner import basic_run_report
+ rep = basic_run_report(item)
+ rep.node = node
+ return rep
class MockNode:
def __init__(self):
@@ -218,7 +219,7 @@
session.loop_once(loopstate)
assert node.sent == [[item]]
- ev = run(item, node)
+ ev = run(item, node)
session.queueevent("itemtestreport", ev)
session.loop_once(loopstate)
assert loopstate.shuttingdown
Modified: py/trunk/py/test/dist/testing/test_txnode.py
==============================================================================
--- py/trunk/py/test/dist/testing/test_txnode.py (original)
+++ py/trunk/py/test/dist/testing/test_txnode.py Sat Apr 4 00:36:29 2009
@@ -28,6 +28,8 @@
if name == eventname:
return args
events.append(name)
+ if name == "internalerror":
+ print str(kwargs["excrepr"])
class MySetup:
def __init__(self, pyfuncitem):
Modified: py/trunk/py/test/dist/txnode.py
==============================================================================
--- py/trunk/py/test/dist/txnode.py (original)
+++ py/trunk/py/test/dist/txnode.py Sat Apr 4 00:36:29 2009
@@ -106,12 +106,16 @@
def sendevent(self, eventname, *args, **kwargs):
self.channel.send((eventname, args, kwargs))
+ def pyevent__itemtestreport(self, report):
+ self.sendevent("itemtestreport", report)
+
def run(self):
channel = self.channel
self.config, basetemp = channel.receive()
if basetemp:
self.config.basetemp = py.path.local(basetemp)
self.config.pytestplugins.do_configure(self.config)
+ self.config.pytestplugins.register(self)
self.sendevent("slaveready")
try:
while 1:
@@ -121,16 +125,12 @@
break
if isinstance(task, list):
for item in task:
- self.runtest(item)
+ item.config.pytestplugins.do_itemrun(item)
else:
- self.runtest(task)
+ task.config.pytestplugins.do_itemrun(item=task)
except KeyboardInterrupt:
raise
except:
er = py.code.ExceptionInfo().getrepr(funcargs=True, showlocals=True)
self.sendevent("internalerror", excrepr=er)
raise
-
- def runtest(self, item):
- report = item.config.pytestplugins.do_itemrun(item)
- self.sendevent("itemtestreport", report)
Modified: py/trunk/py/test/plugin/pytest_default.py
==============================================================================
--- py/trunk/py/test/plugin/pytest_default.py (original)
+++ py/trunk/py/test/plugin/pytest_default.py Sat Apr 4 00:36:29 2009
@@ -10,7 +10,8 @@
else:
runner = basic_run_report
report = runner(item, pdb=pdb)
- return report
+ item.config.pytestplugins.notify("itemtestreport", report)
+ return True
def pytest_pyfunc_call(self, pyfuncitem, args, kwargs):
pyfuncitem.obj(*args, **kwargs)
Modified: py/trunk/py/test/pytestplugin.py
==============================================================================
--- py/trunk/py/test/pytestplugin.py (original)
+++ py/trunk/py/test/pytestplugin.py Sat Apr 4 00:36:29 2009
@@ -106,7 +106,9 @@
config.bus.unregister(self)
def do_itemrun(self, item, pdb=None):
- return self.pyplugins.call_firstresult("pytest_itemrun", item=item, pdb=pdb)
+ res = self.pyplugins.call_firstresult("pytest_itemrun", item=item, pdb=pdb)
+ if res is None:
+ raise ValueError("could not run %r" %(item,))
#
# XXX old code to automatically load classes
Modified: py/trunk/py/test/session.py
==============================================================================
--- py/trunk/py/test/session.py (original)
+++ py/trunk/py/test/session.py Sat Apr 4 00:36:29 2009
@@ -105,7 +105,6 @@
colitems = self.getinitialitems(colitems)
self.shouldstop = False
self.sessionstarts()
- #self.bus.notify("testnodeready", maketestnodeready())
exitstatus = outcome.EXIT_OK
captured_excinfo = None
try:
@@ -134,5 +133,4 @@
def runtest(self, item):
pdb = self.config.option.usepdb and self.runpdb or None
- report = item.config.pytestplugins.do_itemrun(item, pdb=pdb)
- self.bus.notify("itemtestreport", report)
+ item.config.pytestplugins.do_itemrun(item, pdb=pdb)
More information about the pytest-commit
mailing list