[py-svn] r36943 - in py/branch/config/py/test/rsession: . testing
fijal at codespeak.net
fijal at codespeak.net
Thu Jan 18 16:09:36 CET 2007
Author: fijal
Date: Thu Jan 18 16:09:30 2007
New Revision: 36943
Modified:
py/branch/config/py/test/rsession/box.py
py/branch/config/py/test/rsession/hostmanage.py
py/branch/config/py/test/rsession/local.py
py/branch/config/py/test/rsession/master.py
py/branch/config/py/test/rsession/outcome.py
py/branch/config/py/test/rsession/rsession.py
py/branch/config/py/test/rsession/testing/test_boxing.py
py/branch/config/py/test/rsession/testing/test_config.py
py/branch/config/py/test/rsession/testing/test_executor.py
py/branch/config/py/test/rsession/testing/test_master.py
py/branch/config/py/test/rsession/testing/test_rsession.py
py/branch/config/py/test/rsession/testing/test_slave.py
py/branch/config/py/test/rsession/testing/test_web.py
py/branch/config/py/test/rsession/testing/test_webjs.py
py/branch/config/py/test/rsession/web.py
Log:
at least LSession should work now. Did not touched yet the remote options stuff,
but some simplifications were done.
Modified: py/branch/config/py/test/rsession/box.py
==============================================================================
--- py/branch/config/py/test/rsession/box.py (original)
+++ py/branch/config/py/test/rsession/box.py Thu Jan 18 16:09:30 2007
@@ -35,8 +35,7 @@
self.PYTESTSTDOUT = tempdir.join('stdout')
self.PYTESTSTDERR = tempdir.join('stderr')
- from py.__.test.rsession.rsession import remote_options
- nice_level = remote_options.nice_level
+ nice_level = py.test.config.getvalue('dist_nicelevel')
pid = os.fork()
if pid:
if not continuation:
Modified: py/branch/config/py/test/rsession/hostmanage.py
==============================================================================
--- py/branch/config/py/test/rsession/hostmanage.py (original)
+++ py/branch/config/py/test/rsession/hostmanage.py Thu Jan 18 16:09:30 2007
@@ -142,8 +142,6 @@
for channel in channels:
channel.send(None)
- from py.__.test.rsession.rsession import session_options
-
clean = exitfirst
while not clean:
clean = True
@@ -155,7 +153,7 @@
for channel in channels:
try:
- report.wrapcall(reporter, channel.waitclose, int(session_options.waittime))
+ report.wrapcall(reporter, channel.waitclose)
except KeyboardInterrupt, SystemExit:
raise
except:
Modified: py/branch/config/py/test/rsession/local.py
==============================================================================
--- py/branch/config/py/test/rsession/local.py (original)
+++ py/branch/config/py/test/rsession/local.py Thu Jan 18 16:09:30 2007
@@ -33,11 +33,6 @@
outcome.stdout, outcome.stderr = finishcapture(session)
return outcome
-RunnerPolicy = {
- 'plain_runner':plain_runner,
- 'box_runner':box_runner
-}
-
def benchmark_runner(item, session, reporter):
raise NotImplementedError()
Modified: py/branch/config/py/test/rsession/master.py
==============================================================================
--- py/branch/config/py/test/rsession/master.py (original)
+++ py/branch/config/py/test/rsession/master.py Thu Jan 18 16:09:30 2007
@@ -56,9 +56,7 @@
waiter = lambda: py.std.time.sleep(0.1),
max_tasks_per_node=None):
if not max_tasks_per_node:
- from py.__.test.rsession.rsession import session_options
-
- max_tasks_per_node = session_options.max_tasks_per_node
+ max_tasks_per_node = py.test.config.getvalue("dist_taskspernode")
all_tests = {}
while 1:
try:
Modified: py/branch/config/py/test/rsession/outcome.py
==============================================================================
--- py/branch/config/py/test/rsession/outcome.py (original)
+++ py/branch/config/py/test/rsession/outcome.py Thu Jan 18 16:09:30 2007
@@ -32,11 +32,12 @@
relline = lineno - tb_entry.frame.code.firstlineno
path = str(tb_entry.path)
try:
- from py.__.test.rsession.rsession import remote_options
- if remote_options.tbstyle == 'long':
+ if py.test.config.option.tbstyle == 'long':
source = str(tb_entry.getsource())
else:
source = str(tb_entry.getsource()).split("\n")[relline]
+ # XXX: Bare except. What can getsource() raise anyway?
+ # SyntaxError, AttributeError, IndentationError for sure, check it
except:
source = "<could not get source>"
return (relline, lineno, source, path)
Modified: py/branch/config/py/test/rsession/rsession.py
==============================================================================
--- py/branch/config/py/test/rsession/rsession.py (original)
+++ py/branch/config/py/test/rsession/rsession.py Thu Jan 18 16:09:30 2007
@@ -14,71 +14,9 @@
from py.__.test.rsession.hostmanage import init_hosts, teardown_hosts, HostInfo
from py.__.test.rsession.local import local_loop, plain_runner, apigen_runner,\
- box_runner, RunnerPolicy
+ box_runner
from py.__.test.rsession.reporter import LocalReporter, RemoteReporter
-class RemoteOptions(object):
- def __init__(self, d):
- self.d = d
-
- def __getattr__(self, attr):
- if attr == 'd':
- return self.__dict__['d']
- return self.d[attr]
-
- def __setitem__(self, item, val):
- self.d[item] = val
-
-# XXX: Must be initialised somehow
-remote_options = RemoteOptions({'we_are_remote':False})
-
-class SessionOptions:
- defaults = {
- 'max_tasks_per_node' : 15,
- 'runner_policy' : 'plain_runner',
- 'nice_level' : 0,
- 'waittime' : 100.0,
- 'import_pypy' : False,
- }
-
- config = None
-
- def getvalue(self, opt):
- try:
- return getattr(self.config.getvalue('SessionOptions'), opt)
- except (KeyError, AttributeError):
- try:
- return self.defaults[opt]
- except KeyError:
- raise AttributeError("Option %s undeclared" % opt)
-
- def bind_config(self, config):
- self.config = config
- # copy to remote session options
- try:
- ses_opt = self.config.getvalue('SessionOptions').__dict__
- except KeyError:
- ses_opt = self.defaults
- for key in self.defaults:
- try:
- val = ses_opt[key]
- except KeyError:
- val = self.defaults[key]
- remote_options[key] = val
- # copy to remote all options
- for item, val in config.option.__dict__.items():
- remote_options[item] = val
-
- def __repr__(self):
- return "<SessionOptions %s>" % self.config
-
- def __getattr__(self, attr):
- if self.config is None:
- raise AttributeError("Need to set up config first")
- return self.getvalue(attr)
-
-session_options = SessionOptions()
-
class AbstractSession(object):
"""
An abstract session executes collectors/items through a runner.
@@ -188,7 +126,6 @@
""" main loop for running tests. """
args = self.config.remaining
- session_options.bind_config(self.config)
sshhosts, remotepython, rsync_roots = self.read_distributed_config()
reporter, startserverflag = self.init_reporter(reporter,
sshhosts, RemoteReporter)
@@ -221,10 +158,7 @@
sshhosts = [HostInfo(i) for i in
self.config.getvalue("disthosts")]
parse_directories(sshhosts)
- try:
- remotepython = self.config.getvalue("dist_remotepython")
- except:
- remotepython = None
+ remotepython = self.config.getvalue("dist_remotepython")
return sshhosts, remotepython, rsync_roots
def dispatch_tests(self, nodes, args, pkgdir, reporter, checkfun, done_dict):
@@ -254,7 +188,6 @@
if not self.config.option.nomagic:
py.magic.invoke(assertion=1)
- session_options.bind_config(self.config)
reporter, startserverflag = self.init_reporter(reporter,
sshhosts, LocalReporter, args[0])
reporter, checkfun = self.wrap_reporter(reporter)
@@ -310,4 +243,7 @@
self.tracer = Tracer(self.docstorage)
return apigen_runner
else:
- return RunnerPolicy[session_options.runner_policy]
+ if self.config.getvalue('dist_boxing'):
+ return box_runner
+ return plain_runner
+
Modified: py/branch/config/py/test/rsession/testing/test_boxing.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_boxing.py (original)
+++ py/branch/config/py/test/rsession/testing/test_boxing.py Thu Jan 18 16:09:30 2007
@@ -11,10 +11,6 @@
from py.__.test.rsession.testing import example2
from py.__.test.rsession.conftest import option
-def setup_module(mod):
- from py.__.test.rsession.rsession import remote_options
- remote_options['nice_level'] = 0
-
def test_basic_boxing():
# XXX: because we do not have option transfer
## if not hasattr(option, 'nocapture') or not option.nocapture:
Modified: py/branch/config/py/test/rsession/testing/test_config.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_config.py (original)
+++ py/branch/config/py/test/rsession/testing/test_config.py Thu Jan 18 16:09:30 2007
@@ -1,24 +1,6 @@
-""" test session config options
+""" empty module for now, will probably have some content soon
"""
import py
-from py.__.test.rsession.rsession import session_options, SessionOptions,\
- remote_options
-def test_session_opts():
- tmpdir = py.test.ensuretemp("sessionopts")
- tmpdir.ensure("conftest.py").write("""class SessionOptions:
- max_tasks_per_node = 5
- nice_level = 10
- """)
- tmp2 = py.test.ensuretemp("xxx")
- args = [str(tmpdir)]
- config = py.test.config._reparse(args)
- session_options.bind_config(config)
- assert session_options.max_tasks_per_node == 5
- assert remote_options.nice_level == 10
- config = py.test.config._reparse([str(tmp2)])
- session_options.bind_config(config)
- assert session_options.max_tasks_per_node == \
- SessionOptions.defaults['max_tasks_per_node']
Modified: py/branch/config/py/test/rsession/testing/test_executor.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_executor.py (original)
+++ py/branch/config/py/test/rsession/testing/test_executor.py Thu Jan 18 16:09:30 2007
@@ -10,8 +10,6 @@
def setup_module(mod):
mod.rootdir = py.path.local(py.__file__).dirpath().dirpath()
- from py.__.test.rsession.rsession import remote_options
- remote_options['nice_level'] = 0
def XXXtest_executor_passing_function():
ex = Executor(example1.f1)
Modified: py/branch/config/py/test/rsession/testing/test_master.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_master.py (original)
+++ py/branch/config/py/test/rsession/testing/test_master.py Thu Jan 18 16:09:30 2007
@@ -13,15 +13,12 @@
from py.__.test.rsession.outcome import ReprOutcome, Outcome
from py.__.test.rsession.testing.test_slave import funcpass_spec, funcfail_spec
from py.__.test.rsession import report
-from py.__.test.rsession.rsession import session_options, remote_options
from py.__.test.rsession.hostmanage import HostInfo
def setup_module(mod):
# bind an empty config
config = py.test.config._reparse([])
- config.option.max_tasks_per_node = 10
- session_options.bind_config(config)
- #assert not remote_options.exitfirst
+ config.overwrite('dist_taskspernode', 10)
mod.pkgdir = py.path.local(py.__file__).dirpath()
class DummyGateway(object):
Modified: py/branch/config/py/test/rsession/testing/test_rsession.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_rsession.py (original)
+++ py/branch/config/py/test/rsession/testing/test_rsession.py Thu Jan 18 16:09:30 2007
@@ -5,7 +5,7 @@
import py
from py.__.test.rsession import report
from py.__.test.rsession.rsession import RSession, parse_directories,\
- session_options, remote_options, parse_directories
+ parse_directories
from py.__.test.rsession.hostmanage import init_hosts, teardown_hosts,\
HostInfo
from py.__.test.rsession.testing.test_slave import funcfail_spec,\
@@ -155,7 +155,6 @@
teardown_events = []
config = py.test.config._reparse([])
- session_options.bind_config(config)
nodes = init_hosts(setup_events.append, hosts, pkgdir,
rsync_roots=["py"], optimise_localhost=False, remote_options=remote_options.d)
teardown_hosts(teardown_events.append,
@@ -182,7 +181,6 @@
allevents = []
config = py.test.config._reparse([])
- session_options.bind_config(config)
nodes = init_hosts(allevents.append, hosts, pkgdir,
rsync_roots=["py"], optimise_localhost=False, remote_options=remote_options.d)
@@ -224,7 +222,6 @@
hosts = [HostInfo('localhost')]
parse_directories(hosts)
config = py.test.config._reparse([])
- session_options.bind_config(config)
d = remote_options.d.copy()
d['custom'] = 'custom'
nodes = init_hosts(allevents.append, hosts, pkgdir,
Modified: py/branch/config/py/test/rsession/testing/test_slave.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_slave.py (original)
+++ py/branch/config/py/test/rsession/testing/test_slave.py Thu Jan 18 16:09:30 2007
@@ -11,10 +11,7 @@
py.test.skip("rsession is unsupported on Windows.")
def setup_module(module):
- from py.__.test.rsession.rsession import session_options
module.rootdir = py.path.local(py.__file__).dirpath().dirpath()
- config = py.test.config._reparse([])
- session_options.bind_config(config)
# ----------------------------------------------------------------------
# inlined testing functions used below
@@ -35,8 +32,7 @@
asddsa
def funcoption():
- from py.__.test.rsession.rsession import remote_options
- assert remote_options.we_are_remote
+ assert py.test.config.getvalue('we_are_remote')
def funcoptioncustom():
from py.__.test.rsession.rsession import remote_options
Modified: py/branch/config/py/test/rsession/testing/test_web.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_web.py (original)
+++ py/branch/config/py/test/rsession/testing/test_web.py Thu Jan 18 16:09:30 2007
@@ -14,9 +14,7 @@
def setup_module(mod):
config = py.test.config._reparse([])
- from py.__.test.rsession.rsession import session_options
- session_options.bind_config(config)
- session_options.import_pypy = True
+ config.overwrite('dist_import_pypy', True)
from py.__.test.rsession.web import TestHandler as _TestHandler
from py.__.test.rsession.web import MultiQueue
mod._TestHandler = _TestHandler
Modified: py/branch/config/py/test/rsession/testing/test_webjs.py
==============================================================================
--- py/branch/config/py/test/rsession/testing/test_webjs.py (original)
+++ py/branch/config/py/test/rsession/testing/test_webjs.py Thu Jan 18 16:09:30 2007
@@ -7,6 +7,8 @@
from pypy.translator.js.tester import schedule_callbacks
here = py.magic.autopath().dirpath()
+py.test.skip("will fix later, multiple issues")
+
def setup_module(mod):
# load HTML into window object
html = here.join('../webdata/index.html').read()
Modified: py/branch/config/py/test/rsession/web.py
==============================================================================
--- py/branch/config/py/test/rsession/web.py (original)
+++ py/branch/config/py/test/rsession/web.py Thu Jan 18 16:09:30 2007
@@ -14,7 +14,7 @@
import socket
import py
-from py.__.test.rsession.rsession import RSession, session_options
+from py.__.test.rsession.rsession import RSession
from py.__.test.rsession import report
from py.__.test import collect
from py.__.test.rsession.webdata import json
@@ -25,7 +25,7 @@
try:
try:
- if not session_options.import_pypy:
+ if not py.test.config.getvalue('dist_import_pypy'):
raise ImportError
except AttributeError:
pass
More information about the pytest-commit
mailing list