From 210eb5b5293f4bd4d6734a2a4317484fd26215e8 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" <jaraco@jaraco.com> Date: Sat, 30 Jan 2021 11:32:12 -0500 Subject: [PATCH] Add test for escape_path. --- src/allmydata/scripts/common.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/allmydata/scripts/common.py b/src/allmydata/scripts/common.py index d73344274..e50617fd7 100644 --- a/src/allmydata/scripts/common.py +++ b/src/allmydata/scripts/common.py @@ -1,3 +1,5 @@ +# coding: utf-8 + from __future__ import print_function import os, sys, urllib, textwrap @@ -270,6 +272,16 @@ def get_alias(aliases, path_unicode, default): return uri.from_string_dirnode(aliases[alias]).to_string(), path[colon+1:] def escape_path(path): + # type: (str) -> str + """ + Return path quoted to US-ASCII. + + >>> path = u'/føö/bar/☃' + >>> escape_path(path) + '/f%C3%B8%C3%B6/bar/%E2%98%83' + >>> escape_path(path).encode('ascii') + b'/f%C3%B8%C3%B6/bar/%E2%98%83' + """ # this always returns bytes, specifically US-ASCII, valid URL characters segments = path.split("/") return "/".join([urllib.quote(unicode_to_url(s)) for s in segments])