[svn r63151] fix various bits, many tests pass modulo dsession host/node handling

--HG--
branch : trunk
This commit is contained in:
hpk 2009-03-20 18:58:36 +01:00
parent 5740cfebd6
commit 10fb32ad37
5 changed files with 22 additions and 21 deletions

View File

@ -86,12 +86,12 @@ class DSession(Session):
try:
config.getvalue('hosts')
except KeyError:
print "Please specify hosts for distribution of tests:"
print "cmdline: --gateways=host1,host2,..."
print "conftest.py: pytest_option_hosts=['host1','host2',]"
print "environment: PYTEST_OPTION_HOSTS=host1,host2,host3"
print "Please specify test environments for distribution of tests:"
print "py.test --tx ssh=user@somehost --tx popen//python=python2.5"
print "conftest.py: pytest_option_tx=['ssh=user@somehost','popen']"
print "environment: PYTEST_OPTION_TX=ssh=@somehost,popen"
print
print "see also: http://codespeak.net/py/current/doc/test.html#automated-distributed-testing"
#print "see also: http://codespeak.net/py/current/doc/test.html#automated-distributed-testing"
raise SystemExit
def main(self, colitems=None):

View File

@ -1,6 +1,5 @@
from py.__.test.dsession.dsession import DSession
from py.__.test.dsession.masterslave import maketestnodeready
from py.__.execnet.gwmanage import GatewaySpec
from py.__.test.runner import basic_collect_report
from py.__.test import event
from py.__.test import outcome
@ -38,7 +37,7 @@ class TestDSession:
item = testdir.getitem("def test_func(): pass")
rep = run(item)
session = DSession(item.config)
host = GatewaySpec("localhost")
host = py.execnet.XSpec("popen")
host.node = MockNode()
assert not session.host2pending
session.addhost(host)
@ -54,7 +53,7 @@ class TestDSession:
item = testdir.getitem("def test_func(): pass")
rep = run(item)
session = DSession(item.config)
host = GatewaySpec("localhost")
host = py.execnet.XSpec("popen")
host.node = MockNode()
session.addhost(host)
session.senditems([item])
@ -79,9 +78,9 @@ class TestDSession:
def test_triggertesting_item(self, testdir):
item = testdir.getitem("def test_func(): pass")
session = DSession(item.config)
host1 = GatewaySpec("localhost")
host1 = py.execnet.XSpec("popen")
host1.node = MockNode()
host2 = GatewaySpec("localhost")
host2 = py.execnet.XSpec("popen")
host2.node = MockNode()
session.addhost(host1)
session.addhost(host2)

View File

@ -42,7 +42,7 @@ class TestAsyncFunctional:
def test_fail():
assert 0
""")
config = testdir.parseconfig('-d', p1, '--gateways=popen')
config = testdir.parseconfig('-d', p1, '--tx=popen')
dsession = DSession(config)
eq = EventQueue(config.bus)
dsession.main([config.getfsnode(p1)])
@ -54,7 +54,7 @@ class TestAsyncFunctional:
assert ev.failed
# see that the host is really down
ev, = eq.geteventargs("testnodedown")
assert ev.host.address == "popen"
assert ev.host.popen
ev, = eq.geteventargs("testrunfinish")
def test_distribution_rsyncdirs_example(self, testdir):
@ -65,7 +65,7 @@ class TestAsyncFunctional:
p = subdir.join("test_one.py")
p.write("def test_5(): assert not __file__.startswith(%r)" % str(p))
result = testdir.runpytest("-d", "--rsyncdirs=%(subdir)s" % locals(),
"--gateways=popen::%(dest)s" % locals(), p)
"--tx=popen//chdir=%(dest)s" % locals(), p)
assert result.ret == 0
result.stdout.fnmatch_lines([
"*1* instantiated gateway *popen*",
@ -88,7 +88,7 @@ class TestAsyncFunctional:
import os
assert os.nice(0) == 10
""")
evrec = testdir.inline_run('-d', p1, '--gateways=popen')
evrec = testdir.inline_run('-d', p1, '--tx=popen')
ev = evrec.getreport('test_nice')
assert ev.passed

View File

@ -1,7 +1,6 @@
import py
from py.__.test.dsession.masterslave import MasterNode
from py.__.execnet.gwmanage import GatewaySpec
class EventQueue:
def __init__(self, bus, queue=None):
@ -43,8 +42,8 @@ class MySetup:
config = py.test.config._reparse([])
self.config = config
self.queue = py.std.Queue.Queue()
self.host = GatewaySpec("popen")
self.gateway = self.host.makegateway()
self.host = py.execnet.XSpec("popen")
self.gateway = py.execnet.makegateway(self.host)
self.node = MasterNode(self.host, self.gateway, self.config, putevent=self.queue.put)
assert not self.node.channel.isclosed()
return self.node

View File

@ -265,7 +265,7 @@ class TestPyTest:
py.test.skip("hello")
""",
)
result = testdir.runpytest(p1, '-d', '--gateways=popen,popen')
result = testdir.runpytest(p1, '-d', '--tx popen --tx popen')
result.stdout.fnmatch_lines([
"HOSTUP: popen*Python*",
#"HOSTUP: localhost*Python*",
@ -288,7 +288,7 @@ class TestPyTest:
""",
)
testdir.makeconftest("""
pytest_option_gateways='popen,popen,popen'
pytest_option_tx = 'popen popen popen'.split()
""")
result = testdir.runpytest(p1, '-d')
result.stdout.fnmatch_lines([
@ -320,7 +320,7 @@ class TestPyTest:
os.kill(os.getpid(), 15)
"""
)
result = testdir.runpytest(p1, '-d', '--gateways=popen,popen,popen')
result = testdir.runpytest(p1, '-d', '-n 3')
result.stdout.fnmatch_lines([
"*popen*Python*",
"*popen*Python*",
@ -434,7 +434,10 @@ class TestInteractive:
print sys.version_info[:2]
assert 0
""")
result = testdir.runpytest("--dist-each", "--gateways=popen-python2.5,popen-python2.4")
result = testdir.runpytest("--dist-each",
"--tx=popen//python2.4",
"--tx=popen//python2.5",
)
assert result.ret == 1
result.stdout.fnmatch_lines([
"*popen-python2.5*FAIL*",