예제 #1
0
 def test_process_rpc_message_no_reply(self):
     mock_logger = MagicMock()
     proc = rpc_message_processor.RpcMessageProcessor(mock_logger, "app_name", "integrity_check", "rabbitmq_url",
                                                      "queue_name", "rpc_queue_name", "error_queue_name",
                                                      "register_url", "routing_key")
     mock_message = MagicMock()
     mock_message.properties.get.side_effect = [None, "correlation"]
     proc.process_rpc_message({}, mock_message, MagicMock())
     mock_message.reject.assert_called()
예제 #2
0
 def test_startup_integrity_check(self, mock_register):
     mock_logger = MagicMock()
     mock_integrity = MagicMock()
     proc = rpc_message_processor.RpcMessageProcessor(mock_logger, "app_name", mock_integrity, "rabbitmq_url",
                                                      "queue_name", "rpc_queue_name", "error_queue_name",
                                                      "register_url", "routing_key")
     mock_register.return_value.max_entry.return_value = 2
     mock_register.return_value.republish_entries.return_value = {
         "entries_not_found": [], "republished_entries": [1, 2]}
     mock_integrity.check_integrity.return_value = [1, 2]
     result = proc.startup_integrity_check(MagicMock())
     self.assertEqual(result, {'entries_not_found': [], 'republished_entries': [1, 2]})
예제 #3
0
 def test_process_rpc_message_health_bad(self, mock_rabbit, mock_health):
     mock_logger = MagicMock()
     proc = rpc_message_processor.RpcMessageProcessor(mock_logger, "app_name", "integrity_check", "rabbitmq_url",
                                                      "queue_name", "rpc_queue_name", "error_queue_name",
                                                      "register_url", "routing_key")
     mock_message = MagicMock()
     mock_message.properties.get.side_effect = ["reply-to", "correlation"]
     mock_rabbit.publish_message = self.save_message
     mock_health.return_value.generate_health_msg.return_value = {"status": "BAD"}
     proc.process_rpc_message({"method": "health"}, mock_message, MagicMock())
     self.assertEqual(self.rpc_response,
                      {"success": True,
                       "result": {'status': 'BAD'},
                       'error': None})
예제 #4
0
 def test_process_rpc_message_delete_errors(self, mock_rabbit, mock_err_client):
     mock_logger = MagicMock()
     proc = rpc_message_processor.RpcMessageProcessor(mock_logger, "app_name", "integrity_check", "rabbitmq_url",
                                                      "queue_name", "rpc_queue_name", "error_queue_name",
                                                      "register_url", "routing_key")
     mock_message = MagicMock()
     mock_message.properties.get.side_effect = ["reply-to", "correlation"]
     mock_rabbit.publish_message = self.save_message
     mock_err_client.return_value.delete_messages.return_value = []
     proc.process_rpc_message({"method": "delete_errors"}, mock_message, MagicMock())
     self.assertEqual(self.rpc_response,
                      {"success": True,
                       "result": {'deleted_messages': []},
                       'error': None})
예제 #5
0
 def test_process_rpc_message_integrity_check(self, mock_rabbit, mock_register):
     mock_logger = MagicMock()
     mock_integrity = MagicMock()
     proc = rpc_message_processor.RpcMessageProcessor(mock_logger, "app_name", mock_integrity, "rabbitmq_url",
                                                      "queue_name", "rpc_queue_name", "error_queue_name",
                                                      "register_url", "routing_key")
     mock_message = MagicMock()
     mock_message.properties.get.side_effect = ["reply-to", "correlation"]
     mock_rabbit.publish_message = self.save_message
     mock_register.return_value.max_entry.return_value = 2
     mock_integrity.check_integrity.return_value = [1, 2]
     proc.process_rpc_message({"method": "integrity_check"}, mock_message, MagicMock())
     self.assertEqual(self.rpc_response,
                      {"success": True,
                       "result": {'missing_entries': [1, 2]},
                       'error': None})
예제 #6
0
 def test_process_rpc_message_unknown_method(self, mock_rabbit):
     mock_logger = MagicMock()
     proc = rpc_message_processor.RpcMessageProcessor(mock_logger, "app_name", "integrity_check", "rabbitmq_url",
                                                      "queue_name", "rpc_queue_name", "error_queue_name",
                                                      "register_url", "routing_key")
     mock_message = MagicMock()
     mock_message.properties.get.side_effect = ["reply-to", "correlation"]
     mock_rabbit.publish_message = self.save_message
     proc.process_rpc_message({"method": "rhubarb"}, mock_message, MagicMock())
     mock_message.reject.assert_called()
     self.assertEqual(self.rpc_response,
                      {"success": False,
                       "result": None,
                       'error': {'error_message': 'Exception occured: '
                                 'RpcMessageProcessingException("Unknown method '
                                 '\'rhubarb\'")'}})