add helper method to text module
This commit is contained in:
@@ -28,6 +28,15 @@ def filename_from_url(url):
|
||||
except ValueError:
|
||||
return url
|
||||
|
||||
def nameext_from_url(url, data=None):
|
||||
"""Extract the last part of an url and fill keywords of 'data' accordingly"""
|
||||
if data is None:
|
||||
data = {}
|
||||
data["filename"] = unquote(filename_from_url(url))
|
||||
data["name"], ext = os.path.splitext(data["filename"])
|
||||
data["extension"] = ext[1:]
|
||||
return data
|
||||
|
||||
def clean_path_windows(path):
|
||||
"""Remove illegal characters from a path-segment (Windows)"""
|
||||
try:
|
||||
|
||||
@@ -36,6 +36,22 @@ class TestText(unittest.TestCase):
|
||||
for case in cases:
|
||||
self.assertEqual(text.filename_from_url(case), result)
|
||||
|
||||
def test_nameext_from_url(self):
|
||||
cases = (
|
||||
"http://example.org/v2/filename.ext",
|
||||
"http://example.org/v2/filename.ext?param=value#fragment",
|
||||
"example.org/filename.ext",
|
||||
"/filename.ext",
|
||||
"filename.ext",
|
||||
)
|
||||
result = {
|
||||
"filename" : "filename.ext",
|
||||
"name" : "filename",
|
||||
"extension": "ext",
|
||||
}
|
||||
for case in cases:
|
||||
self.assertEqual(text.nameext_from_url(case), result)
|
||||
|
||||
def test_clean_path(self):
|
||||
cases = {
|
||||
"Hello World." : ("Hello World.", "Hello World."),
|
||||
|
||||
Reference in New Issue
Block a user