[svn r57536] get the py.path fixes of 0.9.x release branch back to trunk

--HG--
branch : trunk
This commit is contained in:
hpk 2008-08-21 12:00:33 +02:00
parent 5f666c99b7
commit 37a41ed0b7
7 changed files with 20 additions and 11 deletions

View File

@ -142,7 +142,11 @@ class PathBase(object):
#assert strrelpath[-1] == self.sep #assert strrelpath[-1] == self.sep
#assert strrelpath[-2] != self.sep #assert strrelpath[-2] != self.sep
strself = str(self) strself = str(self)
if strself.startswith(strrelpath): if sys.platform == "win32":
if os.path.normcase(strself).startswith(
os.path.normcase(strrelpath)):
return strself[len(strrelpath):]
elif strself.startswith(strrelpath):
return strself[len(strrelpath):] return strself[len(strrelpath):]
return "" return ""

View File

@ -25,7 +25,7 @@ class PathServer:
def command_GET(self, id, spec): def command_GET(self, id, spec):
path = self.C2P[id] path = self.C2P[id]
self.channel.send(path._getbyspec(spec)) self.channel.send(path.get(spec))
def command_READ(self, id): def command_READ(self, id):
path = self.C2P[id] path = self.C2P[id]
@ -53,7 +53,7 @@ class PathServer:
if __name__ == '__main__': if __name__ == '__main__':
import py import py
gw = py.execnet.PopenGateway() gw = py.execnet.PopenGateway()
channel = gw._channelfactory.new() channel = gw.channelfactory.new()
srv = PathServer(channel) srv = PathServer(channel)
c = gw.remote_exec(""" c = gw.remote_exec("""
import remotepath import remotepath

View File

@ -13,9 +13,8 @@ channel.send(srv.p2c(py.path.local("/tmp")))
#gw = py.execnet.SshGateway('codespeak.net') #gw = py.execnet.SshGateway('codespeak.net')
gw = py.execnet.PopenGateway() gw = py.execnet.PopenGateway()
gw.remote_init_threads(5) c = gw.remote_exec(SRC)
c = gw.remote_exec(SRC, stdout=py.std.sys.stdout, stderr=py.std.sys.stderr) subchannel = gw.channelfactory.new()
subchannel = gw._channelfactory.new()
c.send(subchannel) c.send(subchannel)
p = RemotePath(subchannel, c.receive()) p = RemotePath(subchannel, c.receive())

View File

@ -33,7 +33,7 @@ class RemotePath(common.FSPathBase):
self._channel.send(('JOIN', self._id, id) + args) self._channel.send(('JOIN', self._id, id) + args)
return RemotePath(self._channel, id) return RemotePath(self._channel, id)
def _getbyspec(self, spec): def get(self, spec):
parts = spec.split(',') parts = spec.split(',')
ask = [x for x in parts if x not in self._specs] ask = [x for x in parts if x not in self._specs]
if ask: if ask:

View File

@ -390,10 +390,6 @@ class LocalPath(common.FSPathBase, PlatformMixin):
#print "trying to import", self #print "trying to import", self
pkgpath = None pkgpath = None
if modname is None: if modname is None:
#try:
# return self._module
#except AttributeError:
# pass
pkgpath = self.pypkgpath() pkgpath = self.pypkgpath()
if pkgpath is not None: if pkgpath is not None:
if ensuresyspath: if ensuresyspath:

View File

@ -1,4 +1,5 @@
import py import py
import sys
from py.path import local from py.path import local
from py.__.path.common import checker from py.__.path.common import checker
from py.__.path.testing.fscommon import CommonFSTests, setuptestfs from py.__.path.testing.fscommon import CommonFSTests, setuptestfs
@ -178,6 +179,10 @@ class TestLocalPath(LocalSetup, CommonFSTests):
assert not hasattr(l3, 'commit') assert not hasattr(l3, 'commit')
def test_long_filenames(self): def test_long_filenames(self):
if sys.platform == "win32":
py.test.skip("win32: work around needed for path length limit")
# see http://codespeak.net/pipermail/py-dev/2008q2/000922.html
tmpdir = self.tmpdir tmpdir = self.tmpdir
# testing paths > 260 chars (which is Windows' limitation, but # testing paths > 260 chars (which is Windows' limitation, but
# depending on how the paths are used), but > 4096 (which is the # depending on how the paths are used), but > 4096 (which is the

View File

@ -30,6 +30,11 @@ class TestWINLocalPath:
assert t1 == t1 assert t1 == t1
assert t1 == t2 assert t1 == t2
def test_relto_with_mixed_case(self):
t1 = self.root.join("a_path", "fiLe")
t2 = self.root.join("A_path")
assert t1.relto(t2) == "fiLe"
def test_allow_unix_style_paths(self): def test_allow_unix_style_paths(self):
t1 = self.root.join('a_path') t1 = self.root.join('a_path')
assert t1 == str(self.root) + '\\a_path' assert t1 == str(self.root) + '\\a_path'