Philipp Hagemeister
9 years ago
3 changed files with 129 additions and 0 deletions
Unified View
Diff Options
@ -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() |
@ -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----- |
Write
Preview
Loading…
Cancel
Save