def test_length_lt_126(self): """ Test setting a length less than 126 """ for i in xrange(0, 126): self.assertEqual('\x00' + chr(i), hybi.encode_header( False, # fin 0, # opcode '', # mask i, # length 0 # flags )) self.assertNotEqual('\x00' + chr(126), hybi.encode_header( False, # fin 0, # opcode '', # mask 126, # length 0 # flags ))
def test_mask(self): """ Test setting a mask """ header = '\x00\x80foo' self.assertEqual(header, hybi.encode_header( False, # fin 0, # opcode 'foo', # mask 0, # length 0 # flags ))
def test_rsv2(self): """ Test all basic permutations of rsv2 """ header = '\x10\x00' self.assertEqual(header, hybi.encode_header( False, # fin 0, # opcode '', # mask 0, # length 0x10 # flags ))
def test_not_fin(self): """ Unfinished frame. """ header = '\x00\x00' self.assertEqual(header, hybi.encode_header( False, # fin 0, # opcode '', # mask 0, # length 0 # flags ))
def test_fin(self): """ Ensure that the fin is applied correctly """ header = chr(hybi.FIN_MASK) + '\x00' self.assertEqual(header, hybi.encode_header( True, # fin 0, # opcode '', # mask 0, # length 0 # flags ))
def make_websocket(self, *args): """ :param args: triplets of fin, opcode, payload """ data = '' for i in xrange(0, len(args), 3): fin, opcode, payload = args[i], args[i + 1], args[i + 2] data += hybi.encode_header(fin, opcode, '', len(payload), 0) data += payload socket = self.make_socket(data) ws = hybi.WebSocketHybi({}, socket) return ws
def encode_header(self, length): base_header = [False, 0, ''] return hybi.encode_header(*(base_header + [length, 0]))