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

Commit d27113d

Browse files
committed
Test the values the adapter sends.
1 parent 60fc238 commit d27113d

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test/test_integration.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,56 @@ def socket_handler(listener):
245245
assert r.content == b'1234567890' * 2
246246

247247
self.tear_down()
248+
249+
def test_adapter_sending_values(self):
250+
self.set_up()
251+
252+
data = []
253+
send_event = threading.Event()
254+
255+
def socket_handler(listener):
256+
sock = listener.accept()[0]
257+
258+
# Do the handshake: conn header, settings, send settings, recv ack.
259+
sock.recv(65535)
260+
sock.recv(65535)
261+
sock.send(SettingsFrame(0).serialize())
262+
sock.recv(65535)
263+
264+
# Now expect some data. One headers frame and one data frame.
265+
data.append(sock.recv(65535))
266+
data.append(sock.recv(65535))
267+
268+
# Respond!
269+
h = HeadersFrame(1)
270+
h.data = self.get_encoder().encode({':status': 200, 'Content-Type': 'not/real', 'Content-Length': 20})
271+
h.flags.add('END_HEADERS')
272+
sock.send(h.serialize())
273+
d = DataFrame(1)
274+
d.data = b'1234567890' * 2
275+
d.flags.add('END_STREAM')
276+
sock.send(d.serialize())
277+
278+
send_event.set()
279+
sock.close()
280+
281+
self._start_server(socket_handler)
282+
283+
s = requests.Session()
284+
s.mount('https://%s' % self.host, HTTP20Adapter())
285+
r = s.post(
286+
'https://%s:%s/some/path' % (self.host, self.port),
287+
data='hi there',
288+
)
289+
290+
# Assert about the sent values.
291+
assert r.status_code == 200
292+
293+
f = decode_frame(data[0])
294+
assert isinstance(f, HeadersFrame)
295+
296+
f = decode_frame(data[1])
297+
assert isinstance(f, DataFrame)
298+
assert f.data == b'hi there'
299+
300+
self.tear_down()

0 commit comments

Comments
 (0)