1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00
pywb/tests/test_socks.py
Ilya Kreymer a954a5470f HEAD requests: fix pywb recording & replay of HEAD requests (force payload of 0 instead of content-length if HEAD request from live web)
tests: fix socks-proxy test to fast-fail to a random unused port to detect proxy hook is enabled
2018-01-29 16:34:25 -08:00

39 lines
1.2 KiB
Python

from .base_config_test import BaseConfigTest, fmod_sl
import pywb.warcserver.http as pywb_http
import os
import socket
import gevent
import pytest
# ============================================================================
class TestSOCKSProxy(BaseConfigTest):
@classmethod
def setup_class(cls):
os.environ['SOCKS_HOST'] = 'localhost'
os.environ['SOCKS_PORT'] = '0'
pywb_http.patch_socks()
import pywb.warcserver.resource.responseloader
pywb.warcserver.resource.responseloader.SOCKS_PROXIES = pywb_http.SOCKS_PROXIES
super(TestSOCKSProxy, cls).setup_class('config_test.yaml')
@classmethod
def teardown_class(cls):
pywb_http.unpatch_socks()
super(TestSOCKSProxy, cls).teardown_class()
def test_socks_proxy_set(self):
assert pywb_http.SOCKS_PROXIES == {'http': 'socks5h://localhost:0',
'https': 'socks5h://localhost:0'
}
def test_socks_attempt_connect(self, fmod_sl):
pytest.importorskip('socks')
# no proxy is set, expect to fail if socks is being used
resp = self.get('/live/{0}http://httpbin.org/get', fmod_sl, status=400)
assert resp.status_int == 400