def test_create_control_block_length_value(self): data = 'Hello, world!' block = mux._create_control_block_length_value( channel_id=1, opcode=mux._MUX_OPCODE_ADD_CHANNEL_REQUEST, flags=0x7, value=data) expected = '\x1c\x01\x0dHello, world!' self.assertEqual(expected, block) data = 'a' * (2**8) block = mux._create_control_block_length_value( channel_id=2, opcode=mux._MUX_OPCODE_ADD_CHANNEL_RESPONSE, flags=0x0, value=data) expected = '\x21\x02\x01\x00' + data self.assertEqual(expected, block) data = 'b' * (2**16) block = mux._create_control_block_length_value( channel_id=3, opcode=mux._MUX_OPCODE_DROP_CHANNEL, flags=0x0, value=data) expected = '\x62\x03\x01\x00\x00' + data self.assertEqual(expected, block)
def _create_add_channel_request_frame(channel_id, encoding, encoded_handshake): if encoding != 0 and encoding != 1: raise ValueError('Invalid encoding') block = mux._create_control_block_length_value( channel_id, mux._MUX_OPCODE_ADD_CHANNEL_REQUEST, encoding, encoded_handshake) payload = mux._encode_channel_id(mux._CONTROL_CHANNEL_ID) + block return create_binary_frame(payload, mask=True)
def test_create_control_block_length_value(self): data = 'Hello, world!' block = mux._create_control_block_length_value( channel_id=1, opcode=mux._MUX_OPCODE_ADD_CHANNEL_REQUEST, flags=0x7, value=data) expected = '\x1c\x01\x0dHello, world!' self.assertEqual(expected, block) data = 'a' * (2 ** 8) block = mux._create_control_block_length_value( channel_id=2, opcode=mux._MUX_OPCODE_ADD_CHANNEL_RESPONSE, flags=0x0, value=data) expected = '\x21\x02\x01\x00' + data self.assertEqual(expected, block) data = 'b' * (2 ** 16) block = mux._create_control_block_length_value( channel_id=3, opcode=mux._MUX_OPCODE_DROP_CHANNEL, flags=0x0, value=data) expected = '\x62\x03\x01\x00\x00' + data self.assertEqual(expected, block)