예제 #1
0
    def test_single_strategy(self):
        """ A single transform supplied.

            @transforms(gzip)
            get(self):
                ...
        """
        from wheezy.web.transforms import handler_transforms

        def transform(request, response):
            assert 'request' == request
            return response + '-transformed'
        mock_handler = Mock()
        mock_handler.request = 'request'
        mock_handler_method = Mock(return_value='response')
        handler = handler_transforms(transform)(mock_handler_method)
        assert 'response-transformed' == handler(mock_handler)
예제 #2
0
    def test_multiple_strategy(self):
        """ A multiple transforms supplied.

            @transforms(minimize, gzip)
            get(self):
                ...
        """
        from wheezy.web.transforms import handler_transforms

        def transformA(request, response):
            assert 'request' == request
            return response + '-A'

        def transformB(request, response):
            assert 'request' == request
            return response + '-B'
        mock_handler = Mock()
        mock_handler.request = 'request'
        mock_handler_method = Mock(return_value='response')
        handler = handler_transforms(
            transformA, transformB)(mock_handler_method)
        assert 'response-A-B' == handler(mock_handler)
예제 #3
0
    def factory(self, session_name='ro'):
        return Factory(session_name, self.errors, self.principal)

    def json_errors(self):
        assert self.errors
        r = self.json_response(self.errors)
        r.status_code = 400
        return r

    def json_response(self, obj):
        r = HTTPResponse('application/json; charset=UTF-8', 'UTF-8')
        r.write_bytes(ujson.dumps(obj))
        return r


compress = handler_transforms(gzip_transform(compress_level=9, min_length=256))


def wraps_handler(p):
    def wrapper(h):
        return response_cache(p)(
            response_transforms(gzip_transform(
                compress_level=9, min_length=256))(h))
    return wrapper


static = wraps_handler(public_cache_profile)(file_handler('content/static'))


def url_index(path, name=None):
    return url(path, static, {'path': 'index.html'}, name=name)