[svn r63141] makegateway works for plain popen and popen+python-version
--HG-- branch : trunk
This commit is contained in:
parent
265e7c5dc2
commit
5f3fac94b6
|
@ -1,34 +1,74 @@
|
|||
import py
|
||||
|
||||
def test_XSpec_attributes():
|
||||
XSpec = py.execnet.XSpec
|
||||
spec = XSpec("socket=192.168.102.2:8888//python=c:/this/python2.5//path=d:\hello")
|
||||
assert spec.socket == "192.168.102.2:8888"
|
||||
assert spec.python == "c:/this/python2.5"
|
||||
assert spec.path == "d:\hello"
|
||||
assert spec.xyz is None
|
||||
XSpec = py.execnet.XSpec
|
||||
|
||||
py.test.raises(AttributeError, "spec._hello")
|
||||
class TestXSpec:
|
||||
def test_attributes(self):
|
||||
spec = XSpec("socket=192.168.102.2:8888//python=c:/this/python2.5//path=d:\hello")
|
||||
assert spec.socket == "192.168.102.2:8888"
|
||||
assert spec.python == "c:/this/python2.5"
|
||||
assert spec.path == "d:\hello"
|
||||
assert spec.xyz is None
|
||||
|
||||
spec = XSpec("socket=192.168.102.2:8888//python=python2.5")
|
||||
assert spec.socket == "192.168.102.2:8888"
|
||||
assert spec.python == "python2.5"
|
||||
assert spec.path is None
|
||||
py.test.raises(AttributeError, "spec._hello")
|
||||
|
||||
spec = XSpec("ssh=user@host//path=/hello/this//python=/usr/bin/python2.5")
|
||||
assert spec.ssh == "user@host"
|
||||
assert spec.python == "/usr/bin/python2.5"
|
||||
assert spec.path == "/hello/this"
|
||||
spec = XSpec("socket=192.168.102.2:8888//python=python2.5")
|
||||
assert spec.socket == "192.168.102.2:8888"
|
||||
assert spec.python == "python2.5"
|
||||
assert spec.path is None
|
||||
|
||||
spec = XSpec("popen")
|
||||
assert spec.popen == True
|
||||
spec = XSpec("ssh=user@host//path=/hello/this//python=/usr/bin/python2.5")
|
||||
assert spec.ssh == "user@host"
|
||||
assert spec.python == "/usr/bin/python2.5"
|
||||
assert spec.path == "/hello/this"
|
||||
|
||||
@py.test.mark.xfail
|
||||
def test_makegateway_popen():
|
||||
spec = py.execnet.XSpec("popen")
|
||||
gw = py.execnet.makegateway(spec)
|
||||
assert gw.spec == spec
|
||||
rinfo = gw.remote_info()
|
||||
assert rinfo.executable == py.std.sys.executable
|
||||
assert rinfo.curdir == py.std.os.getcwd()
|
||||
assert rinfo.version_info == py.std.sys.version_info
|
||||
spec = XSpec("popen")
|
||||
assert spec.popen == True
|
||||
|
||||
def test__samefilesystem(self):
|
||||
assert XSpec("popen")._samefilesystem()
|
||||
assert XSpec("popen//python=123")._samefilesystem()
|
||||
assert not XSpec("popen//path=hello")._samefilesystem()
|
||||
|
||||
class TestMakegateway:
|
||||
def test_popen(self):
|
||||
gw = py.execnet.makegateway("popen")
|
||||
assert gw.spec.python == None
|
||||
rinfo = gw._rinfo()
|
||||
assert rinfo.executable == py.std.sys.executable
|
||||
assert rinfo.cwd == py.std.os.getcwd()
|
||||
assert rinfo.version_info == py.std.sys.version_info
|
||||
|
||||
def test_popen_explicit(self):
|
||||
gw = py.execnet.makegateway("popen//python=%s" % py.std.sys.executable)
|
||||
assert gw.spec.python == py.std.sys.executable
|
||||
rinfo = gw._rinfo()
|
||||
assert rinfo.executable == py.std.sys.executable
|
||||
assert rinfo.cwd == py.std.os.getcwd()
|
||||
assert rinfo.version_info == py.std.sys.version_info
|
||||
|
||||
def test_popen_cpython24(self):
|
||||
for trypath in ('python2.4', r'C:\Python24\python.exe'):
|
||||
cpython24 = py.path.local.sysfind(trypath)
|
||||
if cpython24 is not None:
|
||||
break
|
||||
else:
|
||||
py.test.skip("cpython2.4 not found")
|
||||
gw = py.execnet.makegateway("popen//python=%s" % cpython24)
|
||||
rinfo = gw._rinfo()
|
||||
assert rinfo.executable == cpython24
|
||||
assert rinfo.cwd == py.std.os.getcwd()
|
||||
assert rinfo.version_info[:2] == (2,4)
|
||||
|
||||
def test_popen_cpython26(self):
|
||||
for trypath in ('python2.6', r'C:\Python26\python.exe'):
|
||||
cpython26 = py.path.local.sysfind(trypath)
|
||||
if cpython26 is not None:
|
||||
break
|
||||
else:
|
||||
py.test.skip("cpython2.6 not found")
|
||||
gw = py.execnet.makegateway("popen//python=%s" % cpython26)
|
||||
rinfo = gw._rinfo()
|
||||
assert rinfo.executable == cpython26
|
||||
assert rinfo.cwd == py.std.os.getcwd()
|
||||
assert rinfo.version_info[:2] == (2,6)
|
||||
|
|
|
@ -23,7 +23,13 @@ class XSpec:
|
|||
raise AttributeError(name)
|
||||
return None
|
||||
|
||||
def makegateway(spec):
|
||||
pass
|
||||
def _samefilesystem(self):
|
||||
return bool(self.popen and not self.path)
|
||||
|
||||
|
||||
def makegateway(spec):
|
||||
if not isinstance(spec, XSpec):
|
||||
spec = XSpec(spec)
|
||||
if spec.popen:
|
||||
gw = py.execnet.PopenGateway(python=spec.python)
|
||||
gw.spec = spec
|
||||
return gw
|
||||
|
|
Loading…
Reference in New Issue