mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 06:27:06 -05:00 
			
		
		
		
	Add a test for --no-check-certificate
This commit is contained in:
		
							
								
								
									
										71
									
								
								test/test_http.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								test/test_http.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
# Allow direct execution
 | 
			
		||||
import os
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 | 
			
		||||
 | 
			
		||||
from youtube_dl import YoutubeDL
 | 
			
		||||
from youtube_dl.compat import compat_http_server
 | 
			
		||||
import ssl
 | 
			
		||||
import threading
 | 
			
		||||
 | 
			
		||||
TEST_DIR = os.path.dirname(os.path.abspath(__file__))
 | 
			
		||||
 | 
			
		||||
class HTTPTestRequestHandler(compat_http_server.BaseHTTPRequestHandler):
 | 
			
		||||
    def log_message(self, format, *args):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def do_GET(self):
 | 
			
		||||
        if self.path == '/video.html':
 | 
			
		||||
            self.send_response(200)
 | 
			
		||||
            self.send_header('Content-Type', 'text/html; charset=utf-8')
 | 
			
		||||
            self.end_headers()
 | 
			
		||||
            self.wfile.write(b'<html><video src="/vid.mp4" /></html>')
 | 
			
		||||
        elif self.path == '/vid.mp4':
 | 
			
		||||
            self.send_response(200)
 | 
			
		||||
            self.send_header('Content-Type', 'video/mp4')
 | 
			
		||||
            self.end_headers()
 | 
			
		||||
            self.wfile.write(b'\x00\x00\x00\x00\x20\x66\x74[video]')
 | 
			
		||||
        else:
 | 
			
		||||
            assert False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class FakeLogger(object):
 | 
			
		||||
    def debug(self, msg):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def warning(self, msg):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
    def error(self, msg):
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestHTTP(unittest.TestCase):
 | 
			
		||||
    def setUp(self):
 | 
			
		||||
        certfn = os.path.join(TEST_DIR, 'testcert.pem')
 | 
			
		||||
        self.httpd = compat_http_server.HTTPServer(
 | 
			
		||||
            ('localhost', 0), HTTPTestRequestHandler)
 | 
			
		||||
        self.httpd.socket = ssl.wrap_socket(
 | 
			
		||||
            self.httpd.socket, certfile=certfn, server_side=True)
 | 
			
		||||
        self.port = self.httpd.socket.getsockname()[1]
 | 
			
		||||
        self.server_thread = threading.Thread(target=self.httpd.serve_forever)
 | 
			
		||||
        self.server_thread.daemon = True
 | 
			
		||||
        self.server_thread.start()
 | 
			
		||||
 | 
			
		||||
    def test_nocheckcertificate(self):
 | 
			
		||||
        if sys.version_info >= (2, 7, 9):  # No certificate checking anyways
 | 
			
		||||
            ydl = YoutubeDL({'logger': FakeLogger()})
 | 
			
		||||
            self.assertRaises(
 | 
			
		||||
                Exception,
 | 
			
		||||
                ydl.extract_info, 'https://localhost:%d/video.html' % self.port)
 | 
			
		||||
 | 
			
		||||
        ydl = YoutubeDL({'logger': FakeLogger(), 'nocheckcertificate': True})
 | 
			
		||||
        r = ydl.extract_info('https://localhost:%d/video.html' % self.port)
 | 
			
		||||
        self.assertEqual(r['url'], 'https://localhost:%d/vid.mp4' % self.port)
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    unittest.main()
 | 
			
		||||
							
								
								
									
										52
									
								
								test/testcert.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								test/testcert.pem
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
-----BEGIN PRIVATE KEY-----
 | 
			
		||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMF0bAzaHAdIyB
 | 
			
		||||
HRmnIp4vv40lGqEePmWqicCl0QZ0wsb5dNysSxSa7330M2QeQopGfdaUYF1uTcNp
 | 
			
		||||
Qx6ECgBSfg+RrOBI7r/u4F+sKX8MUXVaf/5QoBUrGNGSn/pp7HMGOuQqO6BVg4+h
 | 
			
		||||
A1ySSwUG8mZItLRry1ISyErmW8b9xlqfd97uLME/5tX+sMelRFjUbAx8A4CK58Ev
 | 
			
		||||
mMguHVTlXzx5RMdYcf1VScYcjlV/qA45uzP8zwI5aigfcmUD+tbGuQRhKxUhmw0J
 | 
			
		||||
aobtOR6+JSOAULW5gYa/egE4dWLwbyM6b6eFbdnjlQzEA1EW7ChMPAW/Mo83KyiP
 | 
			
		||||
tKMCSQulAgMBAAECggEALCfBDAexPjU5DNoh6bIorUXxIJzxTNzNHCdvgbCGiA54
 | 
			
		||||
BBKPh8s6qwazpnjT6WQWDIg/O5zZufqjE4wM9x4+0Zoqfib742ucJO9wY4way6x4
 | 
			
		||||
Clt0xzbLPabB+MoZ4H7ip+9n2+dImhe7pGdYyOHoNYeOL57BBi1YFW42Hj6u/8pd
 | 
			
		||||
63YCXisto3Rz1YvRQVjwsrS+cRKZlzAFQRviL30jav7Wh1aWEfcXxjj4zhm8pJdk
 | 
			
		||||
ITGtq6howz57M0NtX6hZnfe8ywzTnDFIGKIMA2cYHuYJcBh9bc4tCGubTvTKK9UE
 | 
			
		||||
8fM+f6UbfGqfpKCq1mcgs0XMoFDSzKS9+mSJn0+5JQKBgQD+OCKaeH3Yzw5zGnlw
 | 
			
		||||
XuQfMJGNcgNr+ImjmvzUAC2fAZUJLAcQueE5kzMv5Fmd+EFE2CEX1Vit3tg0SXvA
 | 
			
		||||
G+bq609doILHMA03JHnV1npO/YNIhG3AAtJlKYGxQNfWH9mflYj9mEui8ZFxG52o
 | 
			
		||||
zWhHYuifOjjZszUR+/eio6NPzwKBgQDNhUBTrT8LIX4SE/EFUiTlYmWIvOMgXYvN
 | 
			
		||||
8Cm3IRNQ/yyphZaXEU0eJzfX5uCDfSVOgd6YM/2pRah+t+1Hvey4H8e0GVTu5wMP
 | 
			
		||||
gkkqwKPGIR1YOmlw6ippqwvoJD7LuYrm6Q4D6e1PvkjwCq6lEndrOPmPrrXNd0JJ
 | 
			
		||||
XO60y3U2SwKBgQDLkyZarryQXxcCI6Q10Tc6pskYDMIit095PUbTeiUOXNT9GE28
 | 
			
		||||
Hi32ziLCakk9kCysNasii81MxtQ54tJ/f5iGbNMMddnkKl2a19Hc5LjjAm4cJzg/
 | 
			
		||||
98KGEhvyVqvAo5bBDZ06/rcrD+lZOzUglQS5jcIcqCIYa0LHWQ/wJLxFzwKBgFcZ
 | 
			
		||||
1SRhdSmDfUmuF+S4ZpistflYjC3IV5rk4NkS9HvMWaJS0nqdw4A3AMzItXgkjq4S
 | 
			
		||||
DkOVLTkTI5Do5HAWRv/VwC5M2hkR4NMu1VGAKSisGiKtRsirBWSZMEenLNHshbjN
 | 
			
		||||
Jrpz5rZ4H7NT46ZkCCZyFBpX4gb9NyOedjA7Via3AoGARF8RxbYjnEGGFuhnbrJB
 | 
			
		||||
FTPR0vaL4faY3lOgRZ8jOG9V2c9Hzi/y8a8TU4C11jnJSDqYCXBTd5XN28npYxtD
 | 
			
		||||
pjRsCwy6ze+yvYXPO7C978eMG3YRyj366NXUxnXN59ibwe/lxi2OD9z8J1LEdF6z
 | 
			
		||||
VJua1Wn8HKxnXMI61DhTCSo=
 | 
			
		||||
-----END PRIVATE KEY-----
 | 
			
		||||
-----BEGIN CERTIFICATE-----
 | 
			
		||||
MIIEEzCCAvugAwIBAgIJAK1haYi6gmSKMA0GCSqGSIb3DQEBCwUAMIGeMQswCQYD
 | 
			
		||||
VQQGEwJERTEMMAoGA1UECAwDTlJXMRQwEgYDVQQHDAtEdWVzc2VsZG9yZjEbMBkG
 | 
			
		||||
A1UECgwSeW91dHViZS1kbCBwcm9qZWN0MRkwFwYDVQQLDBB5b3V0dWJlLWRsIHRl
 | 
			
		||||
c3RzMRIwEAYDVQQDDAlsb2NhbGhvc3QxHzAdBgkqhkiG9w0BCQEWEHBoaWhhZ0Bw
 | 
			
		||||
aGloYWcuZGUwIBcNMTUwMTMwMDExNTA4WhgPMjExNTAxMDYwMTE1MDhaMIGeMQsw
 | 
			
		||||
CQYDVQQGEwJERTEMMAoGA1UECAwDTlJXMRQwEgYDVQQHDAtEdWVzc2VsZG9yZjEb
 | 
			
		||||
MBkGA1UECgwSeW91dHViZS1kbCBwcm9qZWN0MRkwFwYDVQQLDBB5b3V0dWJlLWRs
 | 
			
		||||
IHRlc3RzMRIwEAYDVQQDDAlsb2NhbGhvc3QxHzAdBgkqhkiG9w0BCQEWEHBoaWhh
 | 
			
		||||
Z0BwaGloYWcuZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMF0bA
 | 
			
		||||
zaHAdIyBHRmnIp4vv40lGqEePmWqicCl0QZ0wsb5dNysSxSa7330M2QeQopGfdaU
 | 
			
		||||
YF1uTcNpQx6ECgBSfg+RrOBI7r/u4F+sKX8MUXVaf/5QoBUrGNGSn/pp7HMGOuQq
 | 
			
		||||
O6BVg4+hA1ySSwUG8mZItLRry1ISyErmW8b9xlqfd97uLME/5tX+sMelRFjUbAx8
 | 
			
		||||
A4CK58EvmMguHVTlXzx5RMdYcf1VScYcjlV/qA45uzP8zwI5aigfcmUD+tbGuQRh
 | 
			
		||||
KxUhmw0JaobtOR6+JSOAULW5gYa/egE4dWLwbyM6b6eFbdnjlQzEA1EW7ChMPAW/
 | 
			
		||||
Mo83KyiPtKMCSQulAgMBAAGjUDBOMB0GA1UdDgQWBBTBUZoqhQkzHQ6xNgZfFxOd
 | 
			
		||||
ZEVt8TAfBgNVHSMEGDAWgBTBUZoqhQkzHQ6xNgZfFxOdZEVt8TAMBgNVHRMEBTAD
 | 
			
		||||
AQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCUOCl3T/J9B08Z+ijfOJAtkbUaEHuVZb4x
 | 
			
		||||
5EpZSy2ZbkLvtsftMFieHVNXn9dDswQc5qjYStCC4o60LKw4M6Y63FRsAZ/DNaqb
 | 
			
		||||
PY3jyCyuugZ8/sNf50vHYkAcF7SQYqOQFQX4TQsNUk2xMJIt7H0ErQFmkf/u3dg6
 | 
			
		||||
cy89zkT462IwxzSG7NNhIlRkL9o5qg+Y1mF9eZA1B0rcL6hO24PPTHOd90HDChBu
 | 
			
		||||
SZ6XMi/LzYQSTf0Vg2R+uMIVlzSlkdcZ6sqVnnqeLL8dFyIa4e9sj/D4ZCYP8Mqe
 | 
			
		||||
Z73H5/NNhmwCHRqVUTgm307xblQaWGhwAiDkaRvRW2aJQ0qGEdZK
 | 
			
		||||
-----END CERTIFICATE-----
 | 
			
		||||
@@ -71,6 +71,11 @@ try:
 | 
			
		||||
except ImportError:
 | 
			
		||||
    compat_subprocess_get_DEVNULL = lambda: open(os.path.devnull, 'w')
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    import http.server as compat_http_server
 | 
			
		||||
except ImportError:
 | 
			
		||||
    import BaseHTTPServer as compat_http_server
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    from urllib.parse import unquote as compat_urllib_parse_unquote
 | 
			
		||||
except ImportError:
 | 
			
		||||
@@ -365,6 +370,7 @@ __all__ = [
 | 
			
		||||
    'compat_html_entities',
 | 
			
		||||
    'compat_html_parser',
 | 
			
		||||
    'compat_http_client',
 | 
			
		||||
    'compat_http_server',
 | 
			
		||||
    'compat_kwargs',
 | 
			
		||||
    'compat_ord',
 | 
			
		||||
    'compat_parse_qs',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user