def test_repr(self): f = PushPromiseFrame(1) assert repr(f).endswith("promised_stream_id=0, data=None") f.promised_stream_id = 4 f.data = b"testdata" assert repr(f).endswith( "promised_stream_id=4, data=<hex:7465737464617461>")
def test_push_promise_frame_with_no_length_parses(self): # Fixes issue with empty data frames raising InvalidPaddingError. f = PushPromiseFrame(1) f.data = b'' data = f.serialize() new_frame = decode_frame(data) assert new_frame.data == b''
def add_push_frame(self, stream_id, promised_stream_id, headers, end_block=True): frame = PushPromiseFrame(stream_id) frame.promised_stream_id = promised_stream_id frame.data = self.encoder.encode(headers) if end_block: frame.flags.add('END_HEADERS') self.frames.append(frame)
def test_push_promise_frame_serializes_properly(self): f = PushPromiseFrame(1) f.flags = set(['END_HEADERS']) f.promised_stream_id = 4 f.data = b'hello world' s = f.serialize() assert s == (b'\x00\x00\x0F\x05\x04\x00\x00\x00\x01' + b'\x00\x00\x00\x04' + b'hello world')
def test_push_promise_frame_serializes_properly(self): f = PushPromiseFrame(1) f.flags = set(['END_HEADERS']) f.promised_stream_id = 4 f.data = b'hello world' s = f.serialize() assert s == ( b'\x00\x00\x0F\x05\x04\x00\x00\x00\x01' + b'\x00\x00\x00\x04' + b'hello world' )
def build_push_promise_frame(self, stream_id, promised_stream_id, headers, flags=[]): """ Builds a single PUSH_PROMISE frame. """ f = PushPromiseFrame(stream_id) f.promised_stream_id = promised_stream_id f.data = self.encoder.encode(headers) f.flags = set(flags) return f