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: | ||||
|             path = py.path.local(path) | ||||
|             l.append(path.relto(self.topdir))  | ||||
|         return l, self.option | ||||
|         return l, vars(self.option) | ||||
| 
 | ||||
|     def __setstate__(self, repr): | ||||
|         # we have to set py.test.config because loading  | ||||
|  | @ -126,7 +126,8 @@ class Config(object): | |||
|         self._rootcol = RootCollector(config=self) | ||||
|         args, cmdlineopts = repr  | ||||
|         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._setargs(args) | ||||
| 
 | ||||
|  |  | |||
|  | @ -11,7 +11,6 @@ import py | |||
| import sys | ||||
| import execnet | ||||
| from py.impl.test.session import Session | ||||
| from py.impl.test.dist.mypickle import PickleChannel | ||||
| from py.impl.test.looponfail import util | ||||
| 
 | ||||
| class LooponfailingSession(Session): | ||||
|  | @ -63,19 +62,22 @@ class RemoteControl(object): | |||
|             raise ValueError("already have gateway %r" % self.gateway) | ||||
|         self.trace("setting up slave session") | ||||
|         self.gateway = self.initgateway() | ||||
|         channel = self.gateway.remote_exec(""" | ||||
|         self.channel = channel = self.gateway.remote_exec(""" | ||||
|             import os | ||||
|             from py.impl.test.dist.mypickle import PickleChannel | ||||
|             from py.impl.test.looponfail.remote import slave_runsession | ||||
|             import py | ||||
|             chdir = channel.receive() | ||||
|             outchannel = channel.gateway.newchannel() | ||||
|             channel.send(outchannel) | ||||
|             channel = PickleChannel(channel) | ||||
|             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 | ||||
|             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)) | ||||
|         remote_outchannel = channel.receive() | ||||
|  | @ -83,8 +85,8 @@ class RemoteControl(object): | |||
|             out._file.write(s) | ||||
|             out._file.flush() | ||||
|         remote_outchannel.setcallback(write) | ||||
|         channel = self.channel = PickleChannel(channel) | ||||
|         channel.send((self.config, out.fullwidth, out.hasmarkup)) | ||||
|         channel.send(self.config.__getstate__()) | ||||
|         channel.send((out.fullwidth, out.hasmarkup)) | ||||
|         self.trace("set up of slave session complete") | ||||
| 
 | ||||
|     def ensure_teardown(self): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue