def request(self, body='', uri=b'https://www.globaleaks.org/', user_id=None, role=None, multilang=False, headers=None, client_addr=None, handler_cls=None, attached_file=None, kwargs={}): """ Constructs a handler for preforming mock requests using the bag of params described below. """ from globaleaks.rest import api if handler_cls is None: handler_cls = self._handler request = forge_request(uri=uri, headers=headers, body=body, client_addr=client_addr, method=b'GET') x = api.APIResourceWrapper() x.preprocess(request) if not getattr(handler_cls, 'decorated', False): for method in ['get', 'post', 'put', 'delete']: if getattr(handler_cls, method, None) is not None: decorators.decorate_method(handler_cls, method) handler_cls.decorated = True handler = handler_cls(self.state, request, **kwargs) if multilang: request.language = None if user_id is None and role is not None: if role == 'admin': user_id = self.dummyAdminUser['id'] elif role == 'receiver': user_id = self.dummyReceiverUser_1['id'] elif role == 'custodian': user_id = self.dummyCustodianUser['id'] if headers is not None and headers.get('x-session', None) is not None: handler.request.headers[b'x-session'] = headers.get( 'x-session').encode() elif role is not None: session = Sessions.new(1, user_id, role, False, USER_PRV_KEY) handler.request.headers[b'x-session'] = session.id.encode() if handler.upload_handler: handler.uploaded_file = self.get_dummy_file( u'upload.raw', attached_file) return handler
def __init__(self): Resource.__init__(self) self._registry = [] self.handler = None for tup in api_spec: args = {} if len(tup) == 2: pattern, handler = tup else: pattern, handler, args = tup if not pattern.startswith("^"): pattern = "^" + pattern if not pattern.endswith("$"): pattern += "$" if not hasattr(handler, '_decorated'): handler._decorated = True for m in ['delete', 'head', 'get', 'put', 'post']: # options method is intentionally not considered here if hasattr(handler, m): decorators.decorate_method(handler, m) self._registry.append((re.compile(pattern), handler, args))
def __init__(self): Resource.__init__(self) self._registry = [] self.handler = None for tup in api_spec: args = {} if len(tup) == 2: pattern, handler = tup else: pattern, handler, args = tup if not pattern.startswith("^"): pattern = "^" + pattern if not pattern.endswith("$"): pattern += "$" if not hasattr(handler, '_decorated'): handler._decorated = True for m in ['get', 'put', 'post', 'delete']: if hasattr(handler, m): decorators.decorate_method(handler, m) self._registry.append((re.compile(pattern), handler, args))
def request(self, body='', uri=b'https://www.globaleaks.org/', user_id=None, role=None, multilang=False, headers=None, client_addr=None, handler_cls=None, attached_file=None, kwargs={}): """ Constructs a handler for preforming mock requests using the bag of params described below. """ from globaleaks.rest import api if handler_cls is None: handler_cls = self._handler request = forge_request(uri=uri, headers=headers, body=body, client_addr=client_addr, method=b'GET') x = api.APIResourceWrapper() x.preprocess(request) if not getattr(handler_cls, 'decorated', False): for method in ['get', 'post', 'put', 'delete']: if getattr(handler_cls, method, None) is not None: decorators.decorate_method(handler_cls, method) handler_cls.decorated = True handler = handler_cls(self.state, request, **kwargs) if multilang: request.language = None if user_id is None and role is not None: if role == 'admin': user_id = self.dummyAdminUser['id'] elif role == 'receiver': user_id = self.dummyReceiverUser_1['id'] elif role == 'custodian': user_id = self.dummyCustodianUser['id'] if headers is not None and headers.get('x-session', None) is not None: handler.request.headers[b'x-session'] = headers.get('x-session').encode() elif role is not None: session = Sessions.new(1, user_id, role, False, USER_PRV_KEY) handler.request.headers[b'x-session'] = session.id.encode() if handler.upload_handler: handler.uploaded_file = self.get_dummy_file(u'upload.raw', attached_file) return handler