def test_create_message_list_request(self): """Test message list request creation""" m1 = b'42' m2 = b'\x01\x23\x245' m3 = b'\x42\x42\x42' m3_str = dandelion.util.encode_bytes(m3).decode() m2_str = dandelion.util.encode_bytes(m2).decode() m1_str = dandelion.util.encode_bytes(m1).decode() self.assertTrue(Protocol.is_message_list_request('GETMESSAGES\n')) self.assertFalse(Protocol.is_message_list_request('GETMES_XXX_SAGES\n')) self.assertEqual(Protocol.create_message_list_request(), 'GETMESSAGES\n') self.assertEqual(Protocol.create_message_list_request([]), 'GETMESSAGES\n') str_ = Protocol.create_message_list_request([m1, m2, m3]) self.assertTrue(Protocol.is_message_list_request(str_)) self.assertTrue('GETMESSAGES ' in str_) self.assertEquals(str_.count(';'), 2) self.assertTrue(m1_str in str_) self.assertTrue(m2_str in str_) self.assertTrue(m3_str in str_) """Testing bad input""" self.assertRaises(TypeError, Protocol.create_message_list_request, 0) self.assertRaises(TypeError, Protocol.create_message_list_request, -1337) self.assertRaises(TypeError, Protocol.create_message_list_request, "1337") self.assertRaises(TypeError, Protocol.create_message_list_request, "XXX")
def test_create_message_list_request(self): """Test message list request creation""" m1 = b'42' m2 = b'\x01\x23\x245' m3 = b'\x42\x42\x42' m3_str = dandelion.util.encode_bytes(m3).decode() m2_str = dandelion.util.encode_bytes(m2).decode() m1_str = dandelion.util.encode_bytes(m1).decode() self.assertTrue(Protocol.is_message_list_request('GETMESSAGES\n')) self.assertFalse( Protocol.is_message_list_request('GETMES_XXX_SAGES\n')) self.assertEqual(Protocol.create_message_list_request(), 'GETMESSAGES\n') self.assertEqual(Protocol.create_message_list_request([]), 'GETMESSAGES\n') str_ = Protocol.create_message_list_request([m1, m2, m3]) self.assertTrue(Protocol.is_message_list_request(str_)) self.assertTrue('GETMESSAGES ' in str_) self.assertEquals(str_.count(';'), 2) self.assertTrue(m1_str in str_) self.assertTrue(m2_str in str_) self.assertTrue(m3_str in str_) """Testing bad input""" self.assertRaises(TypeError, Protocol.create_message_list_request, 0) self.assertRaises(TypeError, Protocol.create_message_list_request, -1337) self.assertRaises(TypeError, Protocol.create_message_list_request, "1337") self.assertRaises(TypeError, Protocol.create_message_list_request, "XXX")
def _process_data(self, bdata): """Internal helper function that processes what should be a server request.""" try: data = bdata.decode() if Protocol.is_message_id_list_request(data): tc = Protocol.parse_message_id_list_request(data) tc, msgs = self._db.messages_since(tc) response_str = Protocol.create_message_id_list(tc, msgs) self._write(response_str.encode()) elif Protocol.is_message_list_request(data): msgids = Protocol.parse_message_list_request(data) msgs = self._db.get_messages(msgids) response_str = Protocol.create_message_list(msgs) self._write(response_str.encode()) else: raise ProtocolParseError except (ProtocolParseError, ValueError, TypeError): #print("SERVER TRANSACTION: Error processing data from client") raise ServerTransaction._AbortTransactionException