Skip to content
This repository was archived by the owner on Jan 13, 2021. It is now read-only.

Commit 88ee2f1

Browse files
committed
Add proxy test to http11 integration
1 parent 9c8bc24 commit 88ee2f1

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

test/server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ def __init__(self,
9898
self.host = host
9999
self.port = port
100100
self.proxy_host = proxy_host
101+
self.secure = secure
101102
self.daemon = True
102103

103104
assert not self.secure, "HTTPS Proxies not supported"

test/test_integration_http11.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,51 @@ def socket_handler(listener):
6969

7070
assert c._sock is None
7171

72+
def test_proxy(self):
73+
self.set_up(secure=False, proxy=True)
74+
75+
send_event = threading.Event()
76+
77+
def socket_handler(listener):
78+
sock = listener.accept()[0]
79+
80+
# We should get the initial request.
81+
data = b''
82+
while not data.endswith(b'\r\n\r\n'):
83+
data += sock.recv(65535)
84+
85+
send_event.wait()
86+
87+
# We need to send back a response.
88+
resp = (
89+
b'HTTP/1.1 201 No Content\r\n'
90+
b'Server: socket-level-server\r\n'
91+
b'Content-Length: 0\r\n'
92+
b'Connection: close\r\n'
93+
b'\r\n'
94+
)
95+
sock.send(resp)
96+
97+
sock.close()
98+
99+
self._start_server(socket_handler)
100+
c = self.get_connection()
101+
c.request('GET', '/')
102+
send_event.set()
103+
r = c.get_response()
104+
105+
assert r.status == 201
106+
assert r.reason == b'No Content'
107+
assert len(r.headers) == 3
108+
assert r.headers[b'server'] == [b'socket-level-server']
109+
assert r.headers[b'content-length'] == [b'0']
110+
assert r.headers[b'connection'] == [b'close']
111+
112+
assert r.read() == b''
113+
114+
assert c._sock is None
115+
116+
72117
def test_closing_response(self):
73118
self.set_up()
74119

0 commit comments

Comments
 (0)