[py-svn] r45667 - py/branch/session-cleanups/py/test/rsession
fijal at codespeak.net
fijal at codespeak.net
Wed Aug 15 12:36:44 CEST 2007
Author: fijal
Date: Wed Aug 15 12:36:44 2007
New Revision: 45667
Modified:
py/branch/session-cleanups/py/test/rsession/master.py
py/branch/session-cleanups/py/test/rsession/rsession.py
Log:
Remove _tryiter from rsession
Modified: py/branch/session-cleanups/py/test/rsession/master.py
==============================================================================
--- py/branch/session-cleanups/py/test/rsession/master.py (original)
+++ py/branch/session-cleanups/py/test/rsession/master.py Wed Aug 15 12:36:44 2007
@@ -4,6 +4,7 @@
import py
from py.__.test.rsession.outcome import ReprOutcome
from py.__.test.rsession import repevent
+from py.__.test.outcome import Skipped
class MasterNode(object):
def __init__(self, channel, reporter):
@@ -39,12 +40,30 @@
# of hanging nodes and such
raise
-def itemgen(colitems, reporter, keyword, reporterror):
- def rep(x):
- reporterror(reporter, x)
- for x in colitems:
- for y in x._tryiter(reporterror=rep, keyword=keyword):
- yield y
+def itemgen(colitems, reporter, keyword=None):
+ stopitems = py.test.collect.Item # XXX should be generator here as well
+ for next in colitems:
+ if isinstance(next, stopitems):
+ try:
+ next._skipbykeyword(keyword)
+ yield next
+ except Skipped:
+ excinfo = py.code.ExceptionInfo()
+ reporter(repevent.SkippedTryiter(excinfo, next))
+ else:
+ reporter(repevent.ItemStart(next))
+ try:
+ for x in itemgen([next.join(x) for x in next.run()], reporter,
+ keyword):
+ yield x
+ except (KeyboardInterrupt, SystemExit):
+ raise
+ except:
+ excinfo = py.code.ExceptionInfo()
+ if excinfo.type is Skipped:
+ reporter(repevent.SkippedTryiter(excinfo, next))
+ else:
+ reporter(repevent.FailedTryiter(excinfo, next))
def dispatch_loop(masternodes, itemgenerator, shouldstop,
waiter = lambda: py.std.time.sleep(0.1),
Modified: py/branch/session-cleanups/py/test/rsession/rsession.py
==============================================================================
--- py/branch/session-cleanups/py/test/rsession/rsession.py (original)
+++ py/branch/session-cleanups/py/test/rsession/rsession.py Wed Aug 15 12:36:44 2007
@@ -69,16 +69,6 @@
return reporter, startserverflag
- def reporterror(reporter, data):
- excinfo, item = data
- if excinfo is None:
- reporter(repevent.ItemStart(item))
- elif excinfo.type is Skipped:
- reporter(repevent.SkippedTryiter(excinfo, item))
- else:
- reporter(repevent.FailedTryiter(excinfo, item))
- reporterror = staticmethod(reporterror)
-
def kill_server(self, startserverflag):
""" Kill web server
"""
@@ -171,8 +161,7 @@
def dispatch_tests(self, nodes, reporter, checkfun):
colitems = self.config.getcolitems()
keyword = self.config.option.keyword
- itemgenerator = itemgen(colitems, reporter, keyword, self.reporterror)
-
+ itemgenerator = itemgen(colitems, reporter, keyword)
all_tests = dispatch_loop(nodes, itemgenerator, checkfun)
class LSession(AbstractSession):
@@ -200,7 +189,7 @@
keyword = self.config.option.keyword
- itemgenerator = itemgen(colitems, reporter, keyword, self.reporterror)
+ itemgenerator = itemgen(colitems, reporter, keyword)
local_loop(self, reporter, itemgenerator, checkfun, self.config, runner=runner)
retval = reporter(repevent.TestFinished())
More information about the py-svn
mailing list