def _create_logical_frame(channel_id,
                          message,
                          opcode=common.OPCODE_BINARY,
                          mask=True):
    bits = chr(0x80 | opcode)
    payload = mux._encode_channel_id(channel_id) + bits + message
    return create_binary_frame(payload, mask=mask)
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 _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_channel_id_encode(self):
     encoded = mux._encode_channel_id(0)
     self.assertEqual('\x00', encoded)
     encoded = mux._encode_channel_id(2**14 - 1)
     self.assertEqual('\xbf\xff', encoded)
     encoded = mux._encode_channel_id(2**14)
     self.assertEqual('\xc0@\x00', encoded)
     encoded = mux._encode_channel_id(2**21 - 1)
     self.assertEqual('\xdf\xff\xff', encoded)
     encoded = mux._encode_channel_id(2**21)
     self.assertEqual('\xe0 \x00\x00', encoded)
     encoded = mux._encode_channel_id(2**29 - 1)
     self.assertEqual('\xff\xff\xff\xff', encoded)
     # channel_id is too large
     self.assertRaises(ValueError, mux._encode_channel_id, 2**29)
 def test_channel_id_encode(self):
     encoded = mux._encode_channel_id(0)
     self.assertEqual('\x00', encoded)
     encoded = mux._encode_channel_id(2 ** 14 - 1)
     self.assertEqual('\xbf\xff', encoded)
     encoded = mux._encode_channel_id(2 ** 14)
     self.assertEqual('\xc0@\x00', encoded)
     encoded = mux._encode_channel_id(2 ** 21 - 1)
     self.assertEqual('\xdf\xff\xff', encoded)
     encoded = mux._encode_channel_id(2 ** 21)
     self.assertEqual('\xe0 \x00\x00', encoded)
     encoded = mux._encode_channel_id(2 ** 29 - 1)
     self.assertEqual('\xff\xff\xff\xff', encoded)
     # channel_id is too large
     self.assertRaises(ValueError,
                       mux._encode_channel_id,
                       2 ** 29)
def _create_logical_frame(channel_id, message, opcode=common.OPCODE_BINARY,
                          mask=True):
    bits = chr(0x80 | opcode)
    payload = mux._encode_channel_id(channel_id) + bits + message
    return create_binary_frame(payload, mask=mask)