def test_windowupdate_frames_update_windows(self): s = Stream(1, None, None, None, None) f = WindowUpdateFrame(1) f.window_increment = 1000 s.receive_frame(f) assert s._out_flow_control_window == 65535 + 1000
def socket_handler(listener): sock = listener.accept()[0] # Dispose of the first two packets. sock.recv(65535) sock.recv(65535) # Send a Settings frame that reduces the flow-control window to # 64 bytes. f = SettingsFrame(0) f.settings[SettingsFrame.INITIAL_WINDOW_SIZE] = 64 sock.send(f.serialize()) # Grab three frames, the settings ACK, the initial headers frame, # and the first data frame. for x in range(0, 3): data.append(sock.recv(65535)) # Send a WindowUpdate giving more window room to the stream. f = WindowUpdateFrame(1) f.window_increment = 64 sock.send(f.serialize()) # Send one that gives more room to the connection. f = WindowUpdateFrame(0) f.window_increment = 64 sock.send(f.serialize()) # Reeive the remaining frame. data.append(sock.recv(65535)) send_event.set() # We're done. sock.close()
def test_connections_increment_send_window_properly(self): f = WindowUpdateFrame(0) f.window_increment = 1000 c = HTTP20Connection('www.google.com') c._sock = DummySocket() # 'Receive' the WINDOWUPDATE frame. c.receive_frame(f) assert c._out_flow_control_window == 65535 + 1000
def test_connections_increment_send_window_properly(self): f = WindowUpdateFrame(0) f.window_increment = 1000 c = HTTP20Connection("www.google.com") c._sock = DummySocket() # 'Receive' the WINDOWUPDATE frame. c.receive_frame(f) assert c._out_flow_control_window == 65535 + 1000
def test_window_update_serializes_properly(self): f = WindowUpdateFrame(0) f.window_increment = 512 s = f.serialize() assert s == b'\x00\x04\x09\x00\x00\x00\x00\x00\x00\x00\x02\x00'
def test_window_update_has_no_flags(self): f = WindowUpdateFrame(0) flags = f.parse_flags(0xFF) assert not flags assert isinstance(flags, set)