[pypy-commit] pypy default: escape slashes in udir basenames with --

RonnyPfannschmidt noreply at buildbot.pypy.org
Sat Apr 14 14:32:19 CEST 2012


Author: Ronny Pfannschmidt <Ronny.Pfannschmidt at gmx.de>
Branch: 
Changeset: r54361:4b487dad7abe
Date: 2012-04-14 12:00 +0200
http://bitbucket.org/pypy/pypy/changeset/4b487dad7abe/

Log:	escape slashes in udir basenames with --

diff --git a/pypy/tool/test/test_udir.py b/pypy/tool/test/test_udir.py
--- a/pypy/tool/test/test_udir.py
+++ b/pypy/tool/test/test_udir.py
@@ -13,6 +13,8 @@
 def test_make_udir_with_basename():
     root = str(udir.udir.ensure('make_udir2', dir=1))
     p1 = udir.make_udir(dir=root, basename='foobar')
+    def assert_relto(path, root, expected):
+        assert path.relto(root) == expected, path.relto(root)
     assert p1.relto(root) == 'usession-foobar-0'
     p1 = udir.make_udir(dir=root, basename='-foobar')
     assert p1.relto(root) == 'usession-foobar-1'
@@ -24,3 +26,5 @@
     assert p1.relto(root) == 'usession-0'
     p1 = udir.make_udir(dir=root, basename='-')
     assert p1.relto(root) == 'usession-1'
+    p1 = udir.make_udir(dir=root, basename='fun/bar')
+    assert p1.relto(root) == 'usession-fun--bar-0'
diff --git a/pypy/tool/udir.py b/pypy/tool/udir.py
--- a/pypy/tool/udir.py
+++ b/pypy/tool/udir.py
@@ -41,6 +41,7 @@
                 basename = basename.encode(sys.getdefaultencoding())
         else:
             basename = ''
+    basename = basename.replace('/', '--')
     if not basename.startswith('-'):
         basename = '-' + basename
     if not basename.endswith('-'):


More information about the pypy-commit mailing list