def wrapper(self, *args, **kwargs): controller_response = func(self, *args, **kwargs) if not controller_response: controller_response = {} if isinstance(controller_response, controllers.ACCEPTABLE_RETURN_TYPES): controller_response = {'content': controller_response} if isinstance(controller_response, (dict, list, tuple)): controller_response = views.Model(data=controller_response) if format: controller_response.format = format if template: controller_response.template = template return controller_response
def wrapper(self, *args, **kwargs): response = func(self, *args, **kwargs) if response is None: response = {} elif isinstance(response, controllers.ACCEPTABLE_RETURN_TYPES): response = {'content': response} if not isinstance(response, messages.Response): response = views.Model(data=response) if isinstance(response, views.Model): if format: response.format = format if template: response.template = template if renderer_args: response.renderer_args = renderer_args return response
def test_render(self): app = applications.Http() tb = toolbar.Toolbar( { 'panels': { 'tests.watson.framework.debug.support.Panel': {'enabled': True} } }, app, app.container.get('jinja2_renderer')) params = { 'context': { 'request': messages.Request.from_environ({}), 'response': messages.Response(200, body='<html><body></body></html>') }, 'view_model': views.Model(format='html') } event = types.Event('render', params=params) response = tb.render(event) assert '<!-- Injected Watson Debug Toolbar -->' in response.body
def test_execute(self): app = applications.Http() listener = listeners.Render(config.views) context = { 'response': Response(200), } vm = views.Model(format='text/plain', data={'content': 'test'}) params = {'context': context, 'view_model': vm, 'container': app.container} event = Event('render', params=params) # error raised as no template exists with raises(InternalServerError): listener(event) with raises(InternalServerError): vm.format = 'exe' listener(event) vm.format = 'json' response = listener(event) assert response.status_code == 200 assert response.headers['Content-Type'] == 'application/json'
def test_render(self): self.panel.view_model = views.Model(format='html') output = self.panel.render() assert '<dt>Memory Usage:</dt>' in output
def test_render_listener(self): vm = views.Model() params = {'view_model': vm} event = types.Event('name', params=params) self.panel.render_listener(event) assert self.panel.view_model is vm
def test_template(self): self.panel.view_model = views.Model(template='test') assert self.panel.template == 'test'