[utils] Add remove_quotes
authorSergey M․ <dstftw@gmail.com>
Mon, 14 Dec 2015 15:30:58 +0000 (21:30 +0600)
committerSergey M․ <dstftw@gmail.com>
Mon, 14 Dec 2015 15:30:58 +0000 (21:30 +0600)
test/test_utils.py
youtube_dl/utils.py

index 501355c74ad9a745bf8788d0f2e2c603f11b39d8..8fc74e591449756e9360c2471b6f26aa58dd503a 100644 (file)
@@ -43,6 +43,7 @@ from youtube_dl.utils import (
     sanitize_path,
     prepend_extension,
     replace_extension,
+    remove_quotes,
     shell_quote,
     smuggle_url,
     str_to_int,
@@ -200,6 +201,15 @@ class TestUtil(unittest.TestCase):
         self.assertEqual(replace_extension('.abc', 'temp'), '.abc.temp')
         self.assertEqual(replace_extension('.abc.ext', 'temp'), '.abc.temp')
 
+    def test_remove_quotes(self):
+        self.assertEqual(remove_quotes(None), None)
+        self.assertEqual(remove_quotes('"'), '"')
+        self.assertEqual(remove_quotes("'"), "'")
+        self.assertEqual(remove_quotes(';'), ';')
+        self.assertEqual(remove_quotes('";'), '";')
+        self.assertEqual(remove_quotes('""'), '')
+        self.assertEqual(remove_quotes('";"'), ';')
+
     def test_ordered_set(self):
         self.assertEqual(orderedSet([1, 1, 2, 3, 4, 4, 5, 6, 7, 3, 5]), [1, 2, 3, 4, 5, 6, 7])
         self.assertEqual(orderedSet([]), [])
index d0606b4bcd3d4706912f753441608dff721d7699..91917fc96da3b1a6ef9fe20ed45e2dcd3ae7ebd2 100644 (file)
@@ -1406,6 +1406,15 @@ def remove_end(s, end):
     return s
 
 
+def remove_quotes(s):
+    if s is None or len(s) < 2:
+        return s
+    for quote in ('"', "'", ):
+        if s[0] == quote and s[-1] == quote:
+            return s[1:-1]
+    return s
+
+
 def url_basename(url):
     path = compat_urlparse.urlparse(url).path
     return path.strip('/').split('/')[-1]