add helper method to text module
This commit is contained in:
@@ -28,6 +28,15 @@ def filename_from_url(url):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
return url
|
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):
|
def clean_path_windows(path):
|
||||||
"""Remove illegal characters from a path-segment (Windows)"""
|
"""Remove illegal characters from a path-segment (Windows)"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -36,6 +36,22 @@ class TestText(unittest.TestCase):
|
|||||||
for case in cases:
|
for case in cases:
|
||||||
self.assertEqual(text.filename_from_url(case), result)
|
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):
|
def test_clean_path(self):
|
||||||
cases = {
|
cases = {
|
||||||
"Hello World." : ("Hello World.", "Hello World."),
|
"Hello World." : ("Hello World.", "Hello World."),
|
||||||
|
|||||||
Reference in New Issue
Block a user