def setup_default_wrappers(self): """ Setup defaulf wrappers. Wrappers are applied when view method does not return instance of Response. In this case nefertari renderers call wrappers and handle response generation. Note: It's important for `add_etag` wrapper be applied before `apply_privacy` as later may remove response data that is used to generate etag """ # Index self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), wrappers.add_etag(self.request), ] # Show self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Create self._after_calls['create'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Update self._after_calls['update'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Replace self._after_calls['replace'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Privacy wrappers if self._auth_enabled: for meth in ('index', 'show', 'create', 'update', 'replace'): self._after_calls[meth] += [ wrappers.apply_privacy(self.request), ] for meth in ('update', 'replace', 'update_many'): self._before_calls[meth] += [ wrappers.apply_request_privacy(self.Model, self._json_params), ]
def setup_default_wrappers(self): """ Setup defaulf wrappers. Wrappers are applied when view method does not return instance of Response. In this case nefertari renderers call wrappers and handle response generation. Note: It's important for `add_etag` wrapper be applied before `apply_privacy` as later may remove response data that is used to generate etag """ # Index self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), wrappers.add_etag(self.request), ] # Show self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Create self._after_calls['create'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Update self._after_calls['update'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Replace self._after_calls['replace'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_object_url(self.request), ] # Privacy wrappers if self._auth_enabled: for meth in ('index', 'show', 'create', 'update', 'replace'): self._after_calls[meth] += [ wrappers.apply_privacy(self.request), ] for meth in ('update', 'replace', 'update_many'): self._before_calls[meth] += [ wrappers.apply_request_privacy( self.Model, self._json_params), ]
def test_add_meta(self): result = {"data": [{"id": 4}]} request = DummyRequest(path="http://example.com", environ={}) result = wrappers.add_meta(request=request)(result=result) assert result["count"] == 1 environ = {"QUERY_STRING": "_limit=100"} request = DummyRequest(path="http://example.com?_limit=100", environ=environ) assert request.path == "http://example.com?_limit=100" result = wrappers.add_meta(request=request)(result=result) assert result["count"] == 1
def test_add_meta(self): result = {'data': [{'id': 4}]} request = DummyRequest(path='http://example.com', environ={}) result = wrappers.add_meta(request=request)(result=result) assert result['count'] == 1 environ = {'QUERY_STRING': '_limit=100'} request = DummyRequest(path='http://example.com?_limit=100', environ=environ) assert request.path == 'http://example.com?_limit=100' result = wrappers.add_meta(request=request)(result=result) assert result['count'] == 1
def test_add_meta_type_error(self, mock_lib): mock_lib.quote.side_effect = TypeError result = {'data': [{'id': 4}]} request = DummyRequest(path='http://example.com', environ={}) result = wrappers.add_meta(request=request)(result=result) assert result['count'] == 1 assert result['data'][0] == {'id': 4}
def setup_default_wrappers(self): self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), wrappers.add_etag(self.request), ] self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), ] self._after_calls['delete'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['delete_many'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['update_many'] = [ wrappers.add_confirmation_url(self.request) ]
def setup_default_wrappers(self): root_resource = getattr(self, 'root_resource', None) auth_enabled = root_resource and root_resource.auth self._after_calls['index'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), ] if auth_enabled: self._after_calls['index'] += [ wrappers.apply_privacy(self.request), ] self._after_calls['index'] += [ wrappers.add_etag(self.request), ] self._after_calls['show'] = [ wrappers.wrap_in_dict(self.request), wrappers.add_meta(self.request), ] if auth_enabled: self._after_calls['show'] += [ wrappers.apply_privacy(self.request), ] self._after_calls['delete'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['delete_many'] = [ wrappers.add_confirmation_url(self.request) ] self._after_calls['update_many'] = [ wrappers.add_confirmation_url(self.request) ]
def test_add_meta_type_error(self): result = {'data': [{'id': 4}]} request = DummyRequest(path='http://example.com', environ={}) result = wrappers.add_meta(request=request)(result=result) assert result['count'] == 1 assert result['data'][0] == {'id': 4}
def test_add_meta_type_error(self): result = {"data": [{"id": 4}]} request = DummyRequest(path="http://example.com", environ={}) result = wrappers.add_meta(request=request)(result=result) assert result["count"] == 1 assert result["data"][0] == {"id": 4}