main loop for running tests.
def main(self, args, reporter=None):
origin: test.RSession
where:
exceptions that might appear during execution:
function source:
def main(self, args, reporter=None):
""" main loop for running tests. """
if not args:
args = [py.path.local()]
sshhosts = self.config.getinitialvalue("disthosts")
directories = parse_directories(sshhosts)
try:
rsync_roots = self.config.getinitialvalue("distrsync_roots")
except:
rsync_roots = None # all files and directories in the pkgdir
session_options.bind_config(self.config)
reporter, checkfun, startserverflag = self.init_reporter(reporter,
sshhosts, RemoteReporter)
reporter(report.TestStarted(sshhosts))
pkgdir = self.getpkgdir(args[0])
colitems = self.make_colitems(args, baseon=pkgdir.dirpath())
try:
remotepython = self.config.getinitialvalue("dist_remotepython")
except:
remotepython = None
nodes = init_hosts(reporter, sshhosts, directories, pkgdir,
rsync_roots, remotepython, remote_options=remote_options.d,
optimise_localhost=self.optimise_localhost)
reporter(report.RsyncFinished())
keyword = self.config.option.keyword
def itemgen():
for x in colitems:
for y in x.tryiter(reporterror = lambda x: self.reporterror(reporter, x), keyword = keyword):
yield y
itemgenerator = itemgen()
dispatch_loop(nodes, itemgenerator, checkfun)
teardown_hosts(reporter, [node.channel for node in nodes], nodes,
exitfirst=self.config.option.exitfirst)
reporter(report.Nodes(nodes))
reporter(report.TestFinished())
if startserverflag:
from py.__.test.rsession.web import kill_server
kill_server()
called in /home/johnny/projects/merlinux/py/dist/py/test/rsession/testing/test_rsession.py
traceback test.RSession.main.0
called in /home/johnny/projects/merlinux/py/dist/py/test/rsession/testing/test_rsession.py
traceback test.RSession.main.1
called in /home/johnny/projects/merlinux/py/dist/py/test/rsession/testing/test_rsession.py