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")
Exemple #2
0
    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")
Exemple #3
0
    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