def test_roundtrip_create_message_id_list_request(self): """Test message ID list request creation / parsing by a round trip""" tc = Protocol.parse_message_id_list_request(Protocol.create_message_id_list_request()) self.assertEqual(tc, None) ex_database_id_bin = b'\x01\x03\x03\x07' tc = Protocol.parse_message_id_list_request(Protocol.create_message_id_list_request(ex_database_id_bin)) self.assertEqual(tc, ex_database_id_bin)
def test_roundtrip_create_message_id_list_request(self): """Test message ID list request creation / parsing by a round trip""" tc = Protocol.parse_message_id_list_request( Protocol.create_message_id_list_request()) self.assertEqual(tc, None) ex_database_id_bin = b'\x01\x03\x03\x07' tc = Protocol.parse_message_id_list_request( Protocol.create_message_id_list_request(ex_database_id_bin)) self.assertEqual(tc, ex_database_id_bin)
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
def test_parse_message_id_list_request(self): """Test parsing the message ID list request string""" tc_bin = b'\x01\x03\x03\x07' tc_str = dandelion.util.encode_bytes(tc_bin).decode() self.assertTrue( Protocol.is_message_id_list_request( 'GETMESSAGELIST {0}\n'.format(tc_str))) tc = Protocol.parse_message_id_list_request( 'GETMESSAGELIST {0}\n'.format(tc_str)) self.assertEqual(tc, tc_bin) self.assertTrue( Protocol.is_message_id_list_request('GETMESSAGELIST\n')) tc = Protocol.parse_message_id_list_request('GETMESSAGELIST\n') self.assertEqual(tc, None) """Testing bad input""" self.assertRaises(ValueError, Protocol.parse_message_id_list_request, None) self.assertRaises(TypeError, Protocol.parse_message_id_list_request, 1337) self.assertRaises(TypeError, Protocol.parse_message_id_list_request, []) self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, '') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'BAD\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'BAD BAD\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'GETMESSAGELIST ???\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'GETMESSAGELIST 01030307 01030307\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'GETMESSAGELISTXXX 01030307\n')
def test_parse_message_id_list_request(self): """Test parsing the message ID list request string""" tc_bin = b'\x01\x03\x03\x07' tc_str = dandelion.util.encode_bytes(tc_bin).decode() self.assertTrue(Protocol.is_message_id_list_request('GETMESSAGELIST {0}\n'.format(tc_str))) tc = Protocol.parse_message_id_list_request('GETMESSAGELIST {0}\n'.format(tc_str)) self.assertEqual(tc, tc_bin) self.assertTrue(Protocol.is_message_id_list_request('GETMESSAGELIST\n')) tc = Protocol.parse_message_id_list_request('GETMESSAGELIST\n') self.assertEqual(tc, None) """Testing bad input""" self.assertRaises(ValueError, Protocol.parse_message_id_list_request, None) self.assertRaises(TypeError, Protocol.parse_message_id_list_request, 1337) self.assertRaises(TypeError, Protocol.parse_message_id_list_request, []) self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, '') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'BAD\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'BAD BAD\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'GETMESSAGELIST ???\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'GETMESSAGELIST 01030307 01030307\n') self.assertRaises(ProtocolParseError, Protocol.parse_message_id_list_request, 'GETMESSAGELISTXXX 01030307\n')