summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-05-19 04:31:30 +0600
committerSergey M․ <dstftw@gmail.com>2016-05-19 04:31:30 +0600
commit46bc9b7d7cea2e161670e65abe42ef01d39e8957 (patch)
treeed0ae44e8dedebe282f8e2a06d8c97b67c69aae1
parentb78531a36abd765aa9c9df1dba1cf82dc23f8fec (diff)
downloadyoutube-dl-46bc9b7d7cea2e161670e65abe42ef01d39e8957.tar.gz
youtube-dl-46bc9b7d7cea2e161670e65abe42ef01d39e8957.tar.xz
youtube-dl-46bc9b7d7cea2e161670e65abe42ef01d39e8957.zip
[utils] Allow None in remove_{start,end}
-rw-r--r--test/test_utils.py12
-rw-r--r--youtube_dl/utils.py8
2 files changed, 14 insertions, 6 deletions
diff --git a/test/test_utils.py b/test/test_utils.py
index 520d32ff5..a697232a8 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -50,6 +50,8 @@ from youtube_dl.utils import (
     sanitize_path,
     prepend_extension,
     replace_extension,
+    remove_start,
+    remove_end,
     remove_quotes,
     shell_quote,
     smuggle_url,
@@ -215,6 +217,16 @@ class TestUtil(unittest.TestCase):
         self.assertEqual(replace_extension('.abc', 'temp'), '.abc.temp')
         self.assertEqual(replace_extension('.abc.ext', 'temp'), '.abc.temp')
 
+    def test_remove_start(self):
+        self.assertEqual(remove_start(None, 'A - '), None)
+        self.assertEqual(remove_start('A - B', 'A - '), 'B')
+        self.assertEqual(remove_start('B - A', 'A - '), 'B - A')
+
+    def test_remove_end(self):
+        self.assertEqual(remove_end(None, ' - B'), None)
+        self.assertEqual(remove_end('A - B', ' - B'), 'A')
+        self.assertEqual(remove_end('B - A', ' - B'), 'B - A')
+
     def test_remove_quotes(self):
         self.assertEqual(remove_quotes(None), None)
         self.assertEqual(remove_quotes('"'), '"')
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index ac60ba18c..5301d0740 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -1549,15 +1549,11 @@ def setproctitle(title):
 
 
 def remove_start(s, start):
-    if s.startswith(start):
-        return s[len(start):]
-    return s
+    return s[len(start):] if s is not None and s.startswith(start) else s
 
 
 def remove_end(s, end):
-    if s.endswith(end):
-        return s[:-len(end)]
-    return s
+    return s[:-len(end)] if s is not None and s.endswith(end) else s
 
 
 def remove_quotes(s):