diff options
| -rw-r--r-- | test/test_YoutubeDLCookieJar.py | 14 | ||||
| -rw-r--r-- | test/testdata/cookies/cookie_file_with_spaces.txt | 5 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 5 | 
3 files changed, 19 insertions, 5 deletions
| diff --git a/test/test_YoutubeDLCookieJar.py b/test/test_YoutubeDLCookieJar.py index f959798de..f833efac5 100644 --- a/test/test_YoutubeDLCookieJar.py +++ b/test/test_YoutubeDLCookieJar.py @@ -14,6 +14,9 @@ from youtube_dl.utils import YoutubeDLCookieJar  class TestYoutubeDLCookieJar(unittest.TestCase): +    def __assert_cookie_has_value(self, cookiejar, key): +        self.assertEqual(cookiejar._cookies['www.foobar.foobar']['/'][key].value, key + '_VALUE') +      def test_keep_session_cookies(self):          cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/session_cookies.txt')          cookiejar.load(ignore_discard=True, ignore_expires=True) @@ -32,12 +35,13 @@ class TestYoutubeDLCookieJar(unittest.TestCase):      def test_strip_httponly_prefix(self):          cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/httponly_cookies.txt')          cookiejar.load(ignore_discard=True, ignore_expires=True) +        self.__assert_cookie_has_value(cookiejar, 'HTTPONLY_COOKIE') +        self.__assert_cookie_has_value(cookiejar, 'JS_ACCESSIBLE_COOKIE') -        def assert_cookie_has_value(key): -            self.assertEqual(cookiejar._cookies['www.foobar.foobar']['/'][key].value, key + '_VALUE') - -        assert_cookie_has_value('HTTPONLY_COOKIE') -        assert_cookie_has_value('JS_ACCESSIBLE_COOKIE') +    def test_convert_spaces_to_tabs(self): +        cookiejar = YoutubeDLCookieJar('./test/testdata/cookies/cookie_file_with_spaces.txt') +        cookiejar.load(ignore_discard=True, ignore_expires=True) +        self.__assert_cookie_has_value(cookiejar, 'COOKIE')  if __name__ == '__main__': diff --git a/test/testdata/cookies/cookie_file_with_spaces.txt b/test/testdata/cookies/cookie_file_with_spaces.txt new file mode 100644 index 000000000..6fda35fa0 --- /dev/null +++ b/test/testdata/cookies/cookie_file_with_spaces.txt @@ -0,0 +1,5 @@ +# Netscape HTTP Cookie File +# http://curl.haxx.se/rfc/cookie_spec.html +# This is a generated file!  Do not edit. + +www.foobar.foobar     FALSE   /       TRUE    2147483647      COOKIE COOKIE_VALUE diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 8ccf25489..93d1dec05 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -2752,6 +2752,11 @@ class YoutubeDLCookieJar(compat_cookiejar.MozillaCookieJar):              for line in f:                  if line.startswith(self._HTTPONLY_PREFIX):                      line = line[len(self._HTTPONLY_PREFIX):] +                # Cookie file may contain spaces instead of tabs. +                # Replace all spaces with tabs to make such cookie files work +                # with MozillaCookieJar. +                if not line.startswith('#'): +                    line = re.sub(r' +', r'\t', line)                  cf.write(compat_str(line))          cf.seek(0)          self._really_load(cf, filename, ignore_discard, ignore_expires) | 
