def test_can_receive_continuation_frame_after_end_stream(self): s = Stream(1, None, None, None, None, None, FlowControlManager(65535)) f = HeadersFrame(1) f.data = 'hi there' f.flags = set('END_STREAM') f2 = ContinuationFrame(1) f2.data = ' sir' f2.flags = set('END_HEADERS') s.receive_frame(f) s.receive_frame(f2)
def test_headers_with_continuation(self): e = Encoder() header_data = e.encode( {':status': 200, 'content-type': 'foo/bar', 'content-length': '0'} ) h = HeadersFrame(1) h.data = header_data[0:int(len(header_data)/2)] c = ContinuationFrame(1) c.data = header_data[int(len(header_data)/2):] c.flags |= set(['END_HEADERS', 'END_STREAM']) sock = DummySocket() sock.buffer = BytesIO(h.serialize() + c.serialize()) c = HTTP20Connection('www.google.com') c._sock = sock r = c.request('GET', '/') assert set(c.get_response(r).headers.iter_raw()) == set([(b'content-type', b'foo/bar'), (b'content-length', b'0')])
def test_headers_with_continuation(self): e = Encoder() header_data = e.encode({ ':status': 200, 'content-type': 'foo/bar', 'content-length': '0' }) h = HeadersFrame(1) h.data = header_data[0:int(len(header_data) / 2)] c = ContinuationFrame(1) c.data = header_data[int(len(header_data) / 2):] c.flags |= set(['END_HEADERS', 'END_STREAM']) sock = DummySocket() sock.buffer = BytesIO(h.serialize() + c.serialize()) c = HTTP20Connection('www.google.com') c._sock = sock r = c.request('GET', '/') assert set(c.get_response(r).headers.iter_raw()) == set([ (b'content-type', b'foo/bar'), (b'content-length', b'0') ])