Ejemplo n.º 1
0
 def test_log_response_not_connected_with_proxy(self, mock_proxy):
     mock_proxy.return_value = True
     expected_debug_data = "* text\n>> data out\n"
     error_msg = "error"
     response = Response.connection_failure(
         MockCurlSimple(
             debug_output=expected_debug_data.encode("utf-8"),
             request=fixture_request(),
         ),
         pycurl.E_HTTP_POST_ERROR,
         error_msg,
     )
     self.com_logger.log_response(response)
     self.reporter.assert_reports(
         fixture_report_item_list_not_connected(response.request.host_label,
                                                error_msg) +
         fixture_report_item_list_proxy_set(response.request.host_label,
                                            response.request.host_label) +
         fixture_report_item_list_debug(response.request.url,
                                        expected_debug_data))
     logger_calls = [
         fixture_logger_call_not_connected(response.request.host_label,
                                           error_msg),
         fixture_logger_call_proxy_set(),
         fixture_logger_call_debug_data(response.request.url,
                                        expected_debug_data)
     ]
     self.assertEqual(logger_calls, self.logger.mock_calls)
Ejemplo n.º 2
0
 def test_log_retry(self):
     prev_addr = "addr"
     prev_port = 2225
     prev_host = Destination(prev_addr, prev_port)
     response = Response.connection_failure(
         MockCurlSimple(request=fixture_request()),
         pycurl.E_HTTP_POST_ERROR,
         "e",
     )
     self.com_logger.log_retry(response, prev_host)
     self.reporter.assert_reports([
         (severity.WARNING, report_codes.NODE_COMMUNICATION_RETRYING, {
             "node": response.request.host_label,
             "failed_address": prev_addr,
             "failed_port": prev_port,
             "next_address": response.request.dest.addr,
             "next_port": settings.pcsd_default_port,
             "request": response.request.url,
         }, None)
     ])
     logger_call = mock.call.warning(
         ("Unable to connect to '{label}' via address '{old_addr}' and "
          "port '{old_port}'. Retrying request '{req}' via address "
          "'{new_addr}' and port '{new_port}'").format(
              label=response.request.host_label,
              old_addr=prev_addr,
              old_port=prev_port,
              new_addr=response.request.dest.addr,
              new_port=settings.pcsd_default_port,
              req=response.request.url,
          ))
     self.assertEqual([logger_call], self.logger.mock_calls)
Ejemplo n.º 3
0
 def test_log_response_not_connected(self, mock_proxy):
     mock_proxy.return_value = False
     expected_debug_data = "* text\n>> data out\n"
     error_msg = "error"
     response = Response.connection_failure(
         MockCurlSimple(
             debug_output=expected_debug_data.encode("utf-8"),
             request=fixture_request(),
         ),
         pycurl.E_HTTP_POST_ERROR,
         error_msg,
     )
     self.com_logger.log_response(response)
     self.reporter.assert_reports(
         fixture_report_item_list_not_connected(
             response.request.host_label, error_msg
         )
         +
         fixture_report_item_list_debug(
             response.request.url, expected_debug_data
         )
     )
     logger_calls = [
         fixture_logger_call_not_connected(
             response.request.host_label, error_msg
         ),
         fixture_logger_call_debug_data(
             response.request.url, expected_debug_data
         )
     ]
     self.assertEqual(logger_calls, self.logger.mock_calls)
Ejemplo n.º 4
0
 def test_log_no_more_addresses(self):
     response = Response.connection_failure(
         MockCurlSimple(request=fixture_request()),
         pycurl.E_HTTP_POST_ERROR, "e")
     self.com_logger.log_no_more_addresses(response)
     self.reporter.assert_reports([
         (severity.WARNING,
          report_codes.NODE_COMMUNICATION_NO_MORE_ADDRESSES, {
              "node": response.request.host_label,
              "request": response.request.url,
          }, None)
     ])
     logger_call = mock.call.warning(
         "No more addresses for node {label} to run '{req}'".format(
             label=response.request.host_label,
             req=response.request.url,
         ))
     self.assertEqual([logger_call], self.logger.mock_calls)
Ejemplo n.º 5
0
 def test_log_retry(self):
     prev_addr = "addr"
     prev_port = 2225
     prev_host = Destination(prev_addr, prev_port)
     response = Response.connection_failure(
         MockCurlSimple(request=fixture_request()),
         pycurl.E_HTTP_POST_ERROR,
         "e",
     )
     self.com_logger.log_retry(response, prev_host)
     self.reporter.assert_reports([(
         severity.WARNING,
         report_codes.NODE_COMMUNICATION_RETRYING,
         {
             "node": response.request.host_label,
             "failed_address": prev_addr,
             "failed_port": prev_port,
             "next_address": response.request.dest.addr,
             "next_port": settings.pcsd_default_port,
             "request": response.request.url,
         },
         None
     )])
     logger_call = mock.call.warning(
         (
             "Unable to connect to '{label}' via address '{old_addr}' and "
             "port '{old_port}'. Retrying request '{req}' via address "
             "'{new_addr}' and port '{new_port}'"
         ).format(
             label=response.request.host_label,
             old_addr=prev_addr,
             old_port=prev_port,
             new_addr=response.request.dest.addr,
             new_port=settings.pcsd_default_port,
             req=response.request.url,
         )
     )
     self.assertEqual([logger_call], self.logger.mock_calls)
Ejemplo n.º 6
0
 def test_log_no_more_addresses(self):
     response = Response.connection_failure(
         MockCurlSimple(request=fixture_request()),
         pycurl.E_HTTP_POST_ERROR,
         "e"
     )
     self.com_logger.log_no_more_addresses(response)
     self.reporter.assert_reports([(
         severity.WARNING,
         report_codes.NODE_COMMUNICATION_NO_MORE_ADDRESSES,
         {
             "node": response.request.host_label,
             "request": response.request.url,
         },
         None
     )])
     logger_call = mock.call.warning(
         "No more addresses for node {label} to run '{req}'".format(
             label=response.request.host_label,
             req=response.request.url,
         )
     )
     self.assertEqual([logger_call], self.logger.mock_calls)
Ejemplo n.º 7
0
 def fixture_response_not_connected(self, errno, error_msg):
     handle = MockCurl()
     handle.request_obj = Request(RequestTarget(self.host),
                                  RequestData(self.request))
     return Response.connection_failure(handle, errno, error_msg)
Ejemplo n.º 8
0
 def fixture_response_not_connected(self, errno, error_msg):
     handle = MockCurl()
     handle.request_obj = Request(
         RequestTarget(self.host), RequestData(self.request)
     )
     return Response.connection_failure(handle, errno, error_msg)