X-Git-Url: https://jfr.im/git/yt-dlp.git/blobdiff_plain/d153de9d10676221479259d2ea8592566c3514c4..cc52de43568d8cd58c7e2ef4e5cecf609da28a9c:/test/test_compat.py diff --git a/test/test_compat.py b/test/test_compat.py index 8c49a001e..c9bc4d7fb 100644 --- a/test/test_compat.py +++ b/test/test_compat.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # coding: utf-8 from __future__ import unicode_literals @@ -10,7 +10,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -from youtube_dlc.compat import ( +from yt_dlp.compat import ( compat_getenv, compat_setenv, compat_etree_Element, @@ -19,6 +19,8 @@ compat_shlex_split, compat_str, compat_struct_unpack, + compat_urllib_parse_quote, + compat_urllib_parse_quote_plus, compat_urllib_parse_unquote, compat_urllib_parse_unquote_plus, compat_urllib_parse_urlencode, @@ -28,11 +30,11 @@ class TestCompat(unittest.TestCase): def test_compat_getenv(self): test_str = 'тест' - compat_setenv('youtube_dlc_COMPAT_GETENV', test_str) - self.assertEqual(compat_getenv('youtube_dlc_COMPAT_GETENV'), test_str) + compat_setenv('yt_dlp_COMPAT_GETENV', test_str) + self.assertEqual(compat_getenv('yt_dlp_COMPAT_GETENV'), test_str) def test_compat_setenv(self): - test_var = 'youtube_dlc_COMPAT_SETENV' + test_var = 'yt_dlp_COMPAT_SETENV' test_str = 'тест' compat_setenv(test_var, test_str) compat_getenv(test_var) @@ -46,13 +48,34 @@ def test_compat_expanduser(self): compat_setenv('HOME', old_home or '') def test_all_present(self): - import youtube_dlc.compat - all_names = youtube_dlc.compat.__all__ + import yt_dlp.compat + all_names = yt_dlp.compat.__all__ present_names = set(filter( lambda c: '_' in c and not c.startswith('_'), - dir(youtube_dlc.compat))) - set(['unicode_literals']) + dir(yt_dlp.compat))) - set(['unicode_literals']) self.assertEqual(all_names, sorted(present_names)) + def test_compat_urllib_parse_quote(self): + self.assertEqual(compat_urllib_parse_quote('abc def'), 'abc%20def') + self.assertEqual(compat_urllib_parse_quote('/user/abc+def'), '/user/abc%2Bdef') + self.assertEqual(compat_urllib_parse_quote('/user/abc+def', safe='+'), '%2Fuser%2Fabc+def') + self.assertEqual(compat_urllib_parse_quote(''), '') + self.assertEqual(compat_urllib_parse_quote('%'), '%25') + self.assertEqual(compat_urllib_parse_quote('%', safe='%'), '%') + self.assertEqual(compat_urllib_parse_quote('津波'), '%E6%B4%A5%E6%B3%A2') + self.assertEqual( + compat_urllib_parse_quote(''' +%%a''', safe='<>=":%/ \r\n'), + ''' +%%a''') + self.assertEqual( + compat_urllib_parse_quote('''(^◣_◢^)っ︻デ═一 ⇀ ⇀ ⇀ ⇀ ⇀ ↶%I%Break%25Things%''', safe='% '), + '''%28%5E%E2%97%A3_%E2%97%A2%5E%29%E3%81%A3%EF%B8%BB%E3%83%87%E2%95%90%E4%B8%80 %E2%87%80 %E2%87%80 %E2%87%80 %E2%87%80 %E2%87%80 %E2%86%B6%I%Break%25Things%''') + + def test_compat_urllib_parse_quote_plus(self): + self.assertEqual(compat_urllib_parse_quote_plus('abc def'), 'abc+def') + self.assertEqual(compat_urllib_parse_quote_plus('/abc def'), '%2Fabc+def') + def test_compat_urllib_parse_unquote(self): self.assertEqual(compat_urllib_parse_unquote('abc%20def'), 'abc def') self.assertEqual(compat_urllib_parse_unquote('%7e/abc+def'), '~/abc+def')