Esempio n. 1
0
    def test_finalize(self):
        resp = Response()
        resp.body = "Foobar"
        resp.finalize(None)
        self.assertEqual(resp.body, "Foobar")
        self.assertEqual(resp.wsgi_headers, [('Content-Length', str(len(resp.body)))])

        resp = Response("404 Not Found")
        resp.file = BytesIO(b"Foobar")
        resp.finalize(None)
        self.assertEqual([block for block in resp.iterable], [b'Foobar'])

        resp = Response()
        resp.file = BytesIO(b"Foobar")
        resp.finalize(lambda f, blocksize: iter(lambda: f.read(8 * 1024), b''))
        self.assertEqual([block for block in resp.iterable], [b'Foobar'])
Esempio n. 2
0
    def test_finalize(self):
        resp = Response()
        resp.body = "Foobar"
        resp.finalize(None)
        self.assertEqual(resp.body, "Foobar")
        self.assertEqual(resp.wsgi_headers,
                         [('Content-Length', str(len(resp.body)))])

        resp = Response("404 Not Found")
        resp.file = BytesIO(b"Foobar")
        resp.finalize(None)
        self.assertEqual([block for block in resp.iterable], [b'Foobar'])

        resp = Response()
        resp.file = BytesIO(b"Foobar")
        resp.finalize(lambda f, blocksize: iter(lambda: f.read(8 * 1024), b''))
        self.assertEqual([block for block in resp.iterable], [b'Foobar'])
Esempio n. 3
0
    def _request(self, env, req):
        """ Processes the request
        Notes:
            This method acts as a wrapper to ease exception handling

        Args:
            env: The wsgi environ variable
        """
        resp = Response()

        self._do_before(req, resp)

        context = self.map.match(req.path, env)
        if context is not None:
            req.matchdict = context
            if 'controller' in context and context[
                    'controller'] in self._controllers:
                if hasattr(self._controllers[context['controller']],
                           context['action']):
                    cls = self._controllers[context['controller']]
                    controller = cls()
                    res = getattr(controller, context['action'])(req, resp)
                else:
                    raise HTTPNotFound()
            elif isinstance(context['action'], collections.Callable):
                res = context['action'](req, resp)
            else:
                raise HTTPNotFound()

            if isinstance(res, Response):
                if isinstance(res, HTTPErrorResponse):
                    raise res
                resp = res
            elif res is not None:
                resp.body = str(res)

        else:
            raise HTTPNotFound()

        return resp
Esempio n. 4
0
    def _request(self, env, req):
        """ Processes the request
        Notes:
            This method acts as a wrapper to ease exception handling

        Args:
            env: The wsgi environ variable
        """
        resp = Response()

        self._do_before(req, resp)

        context = self.map.match(req.path, env)
        if context is not None:
            req.matchdict = context
            if 'controller' in context and context['controller'] in self._controllers:
                if hasattr(self._controllers[context['controller']], context['action']):
                    cls = self._controllers[context['controller']]
                    controller = cls()
                    res = getattr(controller, context['action'])(req, resp)
                else:
                    raise HTTPNotFound()
            elif callable(context['action']):
                res = context['action'](req, resp)
            else:
                raise HTTPNotFound()

            if isinstance(res, Response):
                if isinstance(res, HTTPErrorResponse):
                    raise res
                resp = res
            elif res is not None:
                resp.body = str(res)

        else:
            raise HTTPNotFound()

        return resp
Esempio n. 5
0
def handle_ise(request, response):
    print((response.description))
    resp = Response()
    resp.body = "Whoops"
    return resp
Esempio n. 6
0
def user(request, response):
    resp = Response(headers={'X-Test': 'Foobar'})
    resp.body = "Hello world"
    return resp