diff options
| author | Yen Chi Hsuan <yan12125@gmail.com> | 2016-04-06 18:29:54 +0800 | 
|---|---|---|
| committer | Yen Chi Hsuan <yan12125@gmail.com> | 2016-04-06 18:29:54 +0800 | 
| commit | 92d5477d84c6663e71d6d22e261753a16b78000f (patch) | |
| tree | 03a8f210c735bbf64f6a4d9e43a9ceaeae471cd0 | |
| parent | 8790249c6860374b4d7eeeffae9e7b30d346eaf7 (diff) | |
[compat] Handle tuples properly in urlencode()
Fixes #9055
| -rw-r--r-- | test/test_compat.py | 4 | ||||
| -rw-r--r-- | youtube_dl/compat.py | 3 | 
2 files changed, 6 insertions, 1 deletions
diff --git a/test/test_compat.py b/test/test_compat.py index cc105807a..618668210 100644 --- a/test/test_compat.py +++ b/test/test_compat.py @@ -76,6 +76,10 @@ class TestCompat(unittest.TestCase):          self.assertEqual(compat_urllib_parse_urlencode({'abc': b'def'}), 'abc=def')          self.assertEqual(compat_urllib_parse_urlencode({b'abc': 'def'}), 'abc=def')          self.assertEqual(compat_urllib_parse_urlencode({b'abc': b'def'}), 'abc=def') +        self.assertEqual(compat_urllib_parse_urlencode([('abc', 'def')]), 'abc=def') +        self.assertEqual(compat_urllib_parse_urlencode([('abc', b'def')]), 'abc=def') +        self.assertEqual(compat_urllib_parse_urlencode([(b'abc', 'def')]), 'abc=def') +        self.assertEqual(compat_urllib_parse_urlencode([(b'abc', b'def')]), 'abc=def')      def test_compat_shlex_split(self):          self.assertEqual(compat_shlex_split('-option "one two"'), ['-option', 'one two']) diff --git a/youtube_dl/compat.py b/youtube_dl/compat.py index 76b6b0e38..0b6c5ca7a 100644 --- a/youtube_dl/compat.py +++ b/youtube_dl/compat.py @@ -181,7 +181,8 @@ except ImportError:  # Python 2              if isinstance(e, dict):                  e = encode_dict(e)              elif isinstance(e, (list, tuple,)): -                e = encode_list(e) +                list_e = encode_list(e) +                e = tuple(list_e) if isinstance(e, tuple) else list_e              elif isinstance(e, compat_str):                  e = e.encode(encoding)              return e  | 
