Exemplo n.º 1
0
    def test_handle_platform_error_with_custom_handler(self):
        error = self._create_http_error(payload=_NOT_FOUND_PAYLOAD)
        invocations = []

        def _custom_handler(cause, message, error_dict, http_response):
            invocations.append((cause, message, error_dict, http_response))
            return exceptions.InvalidArgumentError('Custom message', cause,
                                                   http_response)

        firebase_error = _utils.handle_platform_error_from_googleapiclient(
            error, _custom_handler)

        assert isinstance(firebase_error, exceptions.InvalidArgumentError)
        assert str(firebase_error) == 'Custom message'
        assert firebase_error.cause is error
        assert firebase_error.http_response.status_code == 500
        assert firebase_error.http_response.content.decode(
        ) == _NOT_FOUND_PAYLOAD
        assert len(invocations) == 1
        args = invocations[0]
        assert len(args) == 4
        assert args[0] is error
        assert args[1] == 'test error'
        assert args[2] == _NOT_FOUND_ERROR_DICT
        assert args[3] is not None
Exemplo n.º 2
0
 def test_handle_platform_error_with_no_response(self):
     error = socket.error('Test error')
     firebase_error = _utils.handle_platform_error_from_googleapiclient(
         error)
     assert isinstance(firebase_error, exceptions.UnknownError)
     assert str(
         firebase_error
     ) == 'Unknown error while making a remote service call: Test error'
     assert firebase_error.cause is error
     assert firebase_error.http_response is None
Exemplo n.º 3
0
 def test_handle_platform_error_with_no_error_code(self):
     error = self._create_http_error(payload='no error code')
     firebase_error = _utils.handle_platform_error_from_googleapiclient(
         error)
     assert isinstance(firebase_error, exceptions.InternalError)
     message = 'Unexpected HTTP response with status: 500; body: no error code'
     assert str(firebase_error) == message
     assert firebase_error.cause is error
     assert firebase_error.http_response.status_code == 500
     assert firebase_error.http_response.content.decode() == 'no error code'
Exemplo n.º 4
0
 def test_handle_platform_error(self):
     error = self._create_http_error(payload=_NOT_FOUND_PAYLOAD)
     firebase_error = _utils.handle_platform_error_from_googleapiclient(
         error)
     assert isinstance(firebase_error, exceptions.NotFoundError)
     assert str(firebase_error) == 'test error'
     assert firebase_error.cause is error
     assert firebase_error.http_response.status_code == 500
     assert firebase_error.http_response.content.decode(
     ) == _NOT_FOUND_PAYLOAD
Exemplo n.º 5
0
 def _handle_batch_error(self, error):
     """Handles errors received from the googleapiclient while making batch requests."""
     return _utils.handle_platform_error_from_googleapiclient(
         error, _MessagingService._build_fcm_error_googleapiclient)