remove the PickleChannel dependency for looponfail
--HG-- branch : trunk
This commit is contained in:
parent
a9fe84d9b9
commit
676081b87a
|
@ -114,7 +114,7 @@ class Config(object):
|
||||||
for path in self.args:
|
for path in self.args:
|
||||||
path = py.path.local(path)
|
path = py.path.local(path)
|
||||||
l.append(path.relto(self.topdir))
|
l.append(path.relto(self.topdir))
|
||||||
return l, self.option
|
return l, vars(self.option)
|
||||||
|
|
||||||
def __setstate__(self, repr):
|
def __setstate__(self, repr):
|
||||||
# we have to set py.test.config because loading
|
# we have to set py.test.config because loading
|
||||||
|
@ -126,7 +126,8 @@ class Config(object):
|
||||||
self._rootcol = RootCollector(config=self)
|
self._rootcol = RootCollector(config=self)
|
||||||
args, cmdlineopts = repr
|
args, cmdlineopts = repr
|
||||||
args = [str(self.topdir.join(x)) for x in args]
|
args = [str(self.topdir.join(x)) for x in args]
|
||||||
self.option = cmdlineopts
|
self.option = CmdOptions()
|
||||||
|
self.option.__dict__.update(cmdlineopts)
|
||||||
self._preparse(args)
|
self._preparse(args)
|
||||||
self._setargs(args)
|
self._setargs(args)
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ import py
|
||||||
import sys
|
import sys
|
||||||
import execnet
|
import execnet
|
||||||
from py.impl.test.session import Session
|
from py.impl.test.session import Session
|
||||||
from py.impl.test.dist.mypickle import PickleChannel
|
|
||||||
from py.impl.test.looponfail import util
|
from py.impl.test.looponfail import util
|
||||||
|
|
||||||
class LooponfailingSession(Session):
|
class LooponfailingSession(Session):
|
||||||
|
@ -63,19 +62,22 @@ class RemoteControl(object):
|
||||||
raise ValueError("already have gateway %r" % self.gateway)
|
raise ValueError("already have gateway %r" % self.gateway)
|
||||||
self.trace("setting up slave session")
|
self.trace("setting up slave session")
|
||||||
self.gateway = self.initgateway()
|
self.gateway = self.initgateway()
|
||||||
channel = self.gateway.remote_exec("""
|
self.channel = channel = self.gateway.remote_exec("""
|
||||||
import os
|
import os
|
||||||
from py.impl.test.dist.mypickle import PickleChannel
|
import py
|
||||||
from py.impl.test.looponfail.remote import slave_runsession
|
|
||||||
chdir = channel.receive()
|
chdir = channel.receive()
|
||||||
outchannel = channel.gateway.newchannel()
|
outchannel = channel.gateway.newchannel()
|
||||||
channel.send(outchannel)
|
channel.send(outchannel)
|
||||||
channel = PickleChannel(channel)
|
|
||||||
os.chdir(chdir) # unpickling config uses cwd as topdir
|
os.chdir(chdir) # unpickling config uses cwd as topdir
|
||||||
config, fullwidth, hasmarkup = channel.receive()
|
config_state = channel.receive()
|
||||||
|
fullwidth, hasmarkup = channel.receive()
|
||||||
|
py.test.config.__setstate__(config_state)
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
sys.stdout = sys.stderr = outchannel.makefile('w')
|
sys.stdout = sys.stderr = outchannel.makefile('w')
|
||||||
slave_runsession(channel, config, fullwidth, hasmarkup)
|
|
||||||
|
from py.impl.test.looponfail.remote import slave_runsession
|
||||||
|
slave_runsession(channel, py.test.config, fullwidth, hasmarkup)
|
||||||
""")
|
""")
|
||||||
channel.send(str(self.config.topdir))
|
channel.send(str(self.config.topdir))
|
||||||
remote_outchannel = channel.receive()
|
remote_outchannel = channel.receive()
|
||||||
|
@ -83,8 +85,8 @@ class RemoteControl(object):
|
||||||
out._file.write(s)
|
out._file.write(s)
|
||||||
out._file.flush()
|
out._file.flush()
|
||||||
remote_outchannel.setcallback(write)
|
remote_outchannel.setcallback(write)
|
||||||
channel = self.channel = PickleChannel(channel)
|
channel.send(self.config.__getstate__())
|
||||||
channel.send((self.config, out.fullwidth, out.hasmarkup))
|
channel.send((out.fullwidth, out.hasmarkup))
|
||||||
self.trace("set up of slave session complete")
|
self.trace("set up of slave session complete")
|
||||||
|
|
||||||
def ensure_teardown(self):
|
def ensure_teardown(self):
|
||||||
|
|
Loading…
Reference in New Issue