On branch swig-py3: fix test for swig-py on Python 3 on Windows [ in subversion/bindings/swig/python/tests/] * trac/versioncontrol/tests/svn_fs.py (REPOS_PATH, REPOS_URL), On Python 3, pass a str object as argument to urllib.request.pathname2url() instead of a bytes. * util.py (file_uri_for_path): On Python 3, pass a str object as argument to urllib.request.pathname2url() instead of a bytes even if the argment `path' is a bytes object. Reported by: jcorvel Index: subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py =================================================================== --- subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py (revision 1867212) +++ subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py (working copy) @@ -68,8 +68,8 @@ from trac.versioncontrol import Changeset, Node from trac.versioncontrol.svn_fs import SubversionRepository -temp_path = tempfile.mktemp("-trac-svnrepos").encode('UTF-8') -REPOS_PATH = core.svn_dirent_internal_style(temp_path) +temp_path = tempfile.mktemp("-trac-svnrepos") +REPOS_PATH = core.svn_dirent_internal_style(temp_path.encode('UTF-8')) REPOS_URL = pathname2url(temp_path).encode('UTF-8') del temp_path Index: subversion/bindings/swig/python/tests/utils.py =================================================================== --- subversion/bindings/swig/python/tests/utils.py (revision 1867212) +++ subversion/bindings/swig/python/tests/utils.py (working copy) @@ -79,7 +79,10 @@ def file_uri_for_path(path): """Return the file: URI corresponding to the given path.""" - uri_path = pathname2url(path).encode('UTF-8') + if isinstance(path, str): + uri_path = pathname2url(path).encode('UTF-8') + else: + uri_path = pathname2url(path.decode('UTF-8')).encode('UTF-8') # pathname2url claims to return the path part of the URI, but on Windows # it returns both the authority and path parts for no reason, which