def test_goaway_frame_HTTP_1_1_REQUIRED(self): f = GoAwayFrame(0) # Set error code to HTTP_1_1_REQUIRED f.error_code = 13; c = HTTP20Connection('www.google.com') c._sock = DummySocket() # 'Receive' the GOAWAY frame. # Validate that the spec error name and description are used to throw # the connection exception. with pytest.raises(ConnectionError) as conn_err: c.receive_frame(f) err_msg = str(conn_err) name, number, description = errors.get_data(13) assert name in err_msg assert number in err_msg assert description in err_msg
def test_goaway_frame_invalid_error_code(self): f = GoAwayFrame(0) # Set error code to non existing error f.error_code = 100 c = HTTP20Connection('www.google.com') c._sock = DummySocket() c._sock.buffer = BytesIO(f.serialize()) # 'Receive' the GOAWAY frame. # If the error code does not exist in the spec then the additional # data is used instead. with pytest.raises(ConnectionError) as conn_err: c._single_read() err_msg = str(conn_err) with pytest.raises(ValueError): name, number, description = errors.get_data(100) assert str(f.error_code) in err_msg
def test_goaway_frame_HTTP_1_1_REQUIRED(self): f = GoAwayFrame(0) # Set error code to HTTP_1_1_REQUIRED f.error_code = 13 c = HTTP20Connection('www.google.com') c._sock = DummySocket() c._sock.buffer = BytesIO(f.serialize()) # 'Receive' the GOAWAY frame. # Validate that the spec error name and description are used to throw # the connection exception. with pytest.raises(ConnectionError) as conn_err: c._single_read() err_msg = str(conn_err) name, number, description = errors.get_data(13) assert name in err_msg assert number in err_msg assert description in err_msg
def test_goaway_frame_PROTOCOL_ERROR(self): f = GoAwayFrame(0) # Set error code to PROTOCOL_ERROR f.error_code = 1 c = HTTP20Connection('www.google.com') c._sock = DummySocket() c._sock.buffer = BytesIO(f.serialize()) # 'Receive' the GOAWAY frame. # Validate that the spec error name and description are used to throw # the connection exception. with pytest.raises(ConnectionError) as conn_err: c._single_read() err_msg = str(conn_err) name, number, description = errors.get_data(1) assert name in err_msg assert number in err_msg assert description in err_msg