diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/helper.py | 7 | ||||
| -rw-r--r-- | test/test_http.py | 7 | ||||
| -rw-r--r-- | test/test_utils.py | 37 | 
3 files changed, 48 insertions, 3 deletions
| diff --git a/test/helper.py b/test/helper.py index bdd7acca4..f2d878212 100644 --- a/test/helper.py +++ b/test/helper.py @@ -11,8 +11,11 @@ import sys  import youtube_dl.extractor  from youtube_dl import YoutubeDL -from youtube_dl.utils import ( +from youtube_dl.compat import ( +    compat_os_name,      compat_str, +) +from youtube_dl.utils import (      preferredencoding,      write_string,  ) @@ -42,7 +45,7 @@ def report_warning(message):      Print the message to stderr, it will be prefixed with 'WARNING:'      If stderr is a tty file the 'WARNING:' will be colored      ''' -    if sys.stderr.isatty() and os.name != 'nt': +    if sys.stderr.isatty() and compat_os_name != 'nt':          _msg_header = '\033[0;33mWARNING:\033[0m'      else:          _msg_header = 'WARNING:' diff --git a/test/test_http.py b/test/test_http.py index f2e305b6f..fc59b1aed 100644 --- a/test/test_http.py +++ b/test/test_http.py @@ -52,7 +52,12 @@ class TestHTTP(unittest.TestCase):              ('localhost', 0), HTTPTestRequestHandler)          self.httpd.socket = ssl.wrap_socket(              self.httpd.socket, certfile=certfn, server_side=True) -        self.port = self.httpd.socket.getsockname()[1] +        if os.name == 'java': +            # In Jython SSLSocket is not a subclass of socket.socket +            sock = self.httpd.socket.sock +        else: +            sock = self.httpd.socket +        self.port = sock.getsockname()[1]          self.server_thread = threading.Thread(target=self.httpd.serve_forever)          self.server_thread.daemon = True          self.server_thread.start() diff --git a/test/test_utils.py b/test/test_utils.py index 97587ad2f..2bcf8ecf0 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -61,6 +61,7 @@ from youtube_dl.utils import (      lowercase_escape,      url_basename,      urlencode_postdata, +    update_url_query,      version_tuple,      xpath_with_ns,      xpath_element, @@ -76,6 +77,8 @@ from youtube_dl.utils import (  )  from youtube_dl.compat import (      compat_etree_fromstring, +    compat_urlparse, +    compat_parse_qs,  ) @@ -454,6 +457,40 @@ class TestUtil(unittest.TestCase):          data = urlencode_postdata({'username': 'foo@bar.com', 'password': '1234'})          self.assertTrue(isinstance(data, bytes)) +    def test_update_url_query(self): +        def query_dict(url): +            return compat_parse_qs(compat_urlparse.urlparse(url).query) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'quality': ['HD'], 'format': ['mp4']})), +            query_dict('http://example.com/path?quality=HD&format=mp4')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'system': ['LINUX', 'WINDOWS']})), +            query_dict('http://example.com/path?system=LINUX&system=WINDOWS')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'fields': 'id,formats,subtitles'})), +            query_dict('http://example.com/path?fields=id,formats,subtitles')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'fields': ('id,formats,subtitles', 'thumbnails')})), +            query_dict('http://example.com/path?fields=id,formats,subtitles&fields=thumbnails')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path?manifest=f4m', {'manifest': []})), +            query_dict('http://example.com/path')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path?system=LINUX&system=WINDOWS', {'system': 'LINUX'})), +            query_dict('http://example.com/path?system=LINUX')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'fields': b'id,formats,subtitles'})), +            query_dict('http://example.com/path?fields=id,formats,subtitles')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'width': 1080, 'height': 720})), +            query_dict('http://example.com/path?width=1080&height=720')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'bitrate': 5020.43})), +            query_dict('http://example.com/path?bitrate=5020.43')) +        self.assertEqual(query_dict(update_url_query( +            'http://example.com/path', {'test': '第二行тест'})), +            query_dict('http://example.com/path?test=%E7%AC%AC%E4%BA%8C%E8%A1%8C%D1%82%D0%B5%D1%81%D1%82')) +      def test_dict_get(self):          FALSE_VALUES = {              'none': None, | 
