Пример #1
0
    def _handle_single_request(self, request):
        try:
            self._validate_request(request)
            args, kwargs = self._get_params(request)
        except JsonRpcInvalidRequestError as error:
            return error.get_response()

        try:
            method = self._get_method(request['method'])

            try:
                result = method(*args, **kwargs)

                if self._is_notification(request):
                    return None

                result = self._unwrap_result(result)

                return {
                    'jsonrpc': '2.0',
                    'id': request['id'],
                    'result': result,
                }
            except TypeError as error:
                raise JsonRpcInvalidParamsError(
                    data={
                        'type': error.__class__.__name__,
                        'message': compat.text_type(error),
                        'traceback': traceback.format_exc(),
                    })
            except Exception as error:
                raise JsonRpcApplicationError(
                    data={
                        'type': error.__class__.__name__,
                        'message': compat.text_type(error),
                        'traceback': traceback.format_exc(),
                    })
        except JsonRpcError as error:
            if self._is_notification(request):
                return None
            return error.get_response(request['id'])
Пример #2
0
    def _handle_single_request(self, request):
        try:
            self._validate_request(request)
            args, kwargs = self._get_params(request)
        except JsonRpcInvalidRequestError as error:
            return error.get_response()

        try:
            method = self._get_method(request['method'])

            try:
                result = method(*args, **kwargs)

                if self._is_notification(request):
                    return None

                result = self._unwrap_result(result)

                return {
                    'jsonrpc': '2.0',
                    'id': request['id'],
                    'result': result,
                }
            except TypeError as error:
                raise JsonRpcInvalidParamsError(data={
                    'type': error.__class__.__name__,
                    'message': compat.text_type(error),
                    'traceback': traceback.format_exc(),
                })
            except Exception as error:
                raise JsonRpcApplicationError(data={
                    'type': error.__class__.__name__,
                    'message': compat.text_type(error),
                    'traceback': traceback.format_exc(),
                })
        except JsonRpcError as error:
            if self._is_notification(request):
                return None
            return error.get_response(request['id'])
Пример #3
0
def locale_decode(bytestr):
    try:
        return compat.text_type(bytestr)
    except UnicodeError:
        return bytes(bytestr).decode(locale.getpreferredencoding())
Пример #4
0
 def test_create_dir_with_unicode(self):
     with self.assertRaises(ValueError):
         dir_path = compat.text_type(os.path.join(self.parent, b'test'))
         path.get_or_create_dir(dir_path)
Пример #5
0
 def test_create_dir_with_unicode_filename_throws_value_error(self):
     with self.assertRaises(ValueError):
         file_path = compat.text_type(os.path.join(self.parent, b'test'))
         path.get_or_create_file(file_path)
Пример #6
0
 def test_create_dir_with_unicode(self):
     with self.assertRaises(ValueError):
         dir_path = compat.text_type(os.path.join(self.parent, b'test'))
         path.get_or_create_dir(dir_path)
Пример #7
0
 def test_create_dir_with_unicode_filename_throws_value_error(self):
     with self.assertRaises(ValueError):
         file_path = compat.text_type(os.path.join(self.parent, b'test'))
         path.get_or_create_file(file_path)