Example #1
0
def http_error_middleware_factory(options):
    """ HTTP error middleware factory.
    """
    import logging
    if 'http_errors' in options:
        path_for = options['path_for']
        error_mapping = options['http_errors']
        assert isinstance(error_mapping, defaultdict)
        assert path_for(error_mapping.default_factory()) is not None
        for route_name in error_mapping.values():
            assert path_for(route_name) is not None
    else:
        error_mapping = defaultdict(str)
    if 'http_errors_logger' in options:
        logger = options['http_errors_logger']
    else:
        logger = logging.getLogger('unhandled')
        if not logger.handlers:
            logger.setLevel(logging.ERROR)
            logger.addHandler(logging.StreamHandler(sys.stderr))
    return HTTPErrorMiddleware(
        error_mapping,
        logger,
        options.get('http_errors_extra_provider', None),
    )
Example #2
0
 def test_http_errors(self):
     """ http_errors.
     """
     from wheezy.core.collections import defaultdict
     from wheezy.web.middleware.errors import http_error_middleware_factory
     mock_path_for = Mock()
     middleware = http_error_middleware_factory({
         'path_for': mock_path_for,
         'http_errors': defaultdict(lambda: 'http500', {
             404: 'http400'
         })
     })
     assert middleware
Example #3
0
# HTTPErrorMiddleware
if config.get('runtime', 'unhandled') == 'stderr':
    handler = logging.StreamHandler(sys.stderr)
else:
    raise NotImplementedError(mode)
handler.setFormatter(logging.Formatter(ERROR_REPORT_FORMAT))
handler.setLevel(logging.ERROR)
unhandled_logger = logging.getLogger('unhandled')
unhandled_logger.setLevel(logging.ERROR)
unhandled_logger.addHandler(handler)
options.update({
    'http_errors': defaultdict(lambda: 'http500', {
        # HTTP status code: route name
        400: 'http400',
        403: 'http403',
        404: 'http404',
        500: 'http500',
    }),
    'http_errors_logger': unhandled_logger,
    'http_errors_extra_provider': error_report_extra_provider
})

# Template Engine
searchpath = ['content/templates']
engine = Engine(
    loader=FileLoader(searchpath),
    extensions=[
        CoreExtension(token_start='#')
    ]
)
Example #4
0
    )
else:
    raise NotImplementedError(mode)
handler.setFormatter(logging.Formatter(ERROR_REPORT_FORMAT))
handler = OnePassHandler(handler, cache, timedelta(hours=12))
handler.setLevel(logging.ERROR)
unhandled_logger = logging.getLogger("unhandled")
unhandled_logger.setLevel(logging.ERROR)
unhandled_logger.addHandler(handler)
options.update(
    {
        "http_errors": defaultdict(
            lambda: "http500",
            {
                # HTTP status code: route name
                400: "http400",
                403: "http403",
                404: "http404",
                500: "http500",
            },
        ),
        "http_errors_logger": unhandled_logger,
        "http_errors_extra_provider": error_report_extra_provider,
    }
)


# Template Engine
def runtime_engine_factory(loader):
    engine = Engine(loader=loader, extensions=[CoreExtension(), WidgetExtension(), WhitespaceExtension()])
    engine.global_vars.update({"format_value": format_value, "h": html_escape})
    return engine
Example #5
0
if config.get('runtime', 'unhandled') == 'stderr':
    handler = logging.StreamHandler(sys.stderr)
else:
    raise NotImplementedError(mode)
handler.setFormatter(logging.Formatter(ERROR_REPORT_FORMAT))
handler.setLevel(logging.ERROR)
unhandled_logger = logging.getLogger('unhandled')
unhandled_logger.setLevel(logging.ERROR)
unhandled_logger.addHandler(handler)
options.update({
    'http_errors':
    defaultdict(
        lambda: 'http500',
        {
            # HTTP status code: route name
            400: 'http400',
            403: 'http403',
            404: 'http404',
            500: 'http500',
        }),
    'http_errors_logger':
    unhandled_logger,
    'http_errors_extra_provider':
    error_report_extra_provider
})

# Template Engine
searchpath = ['content/templates']
engine = Engine(loader=FileLoader(searchpath),
                extensions=[CoreExtension(token_start='#')])
engine.global_vars.update({'__version__': __version__})
Example #6
0
        'CRYPTO_ENCRYPTION_KEY': '_WsoFT.AbI+asdfJ',
        'CRYPTO_VALIDATION_KEY': 'Lf9awLiLAD_SD+ih'
})

options.update({
        'ticket': Ticket(
            max_age=1200,
            salt='Hksdf_df1lka+lA',
            digestmod=sha1),

        'AUTH_COOKIE': '_a',
        'AUTH_COOKIE_DOMAIN': None,
        'AUTH_COOKIE_PATH': '',
        'AUTH_COOKIE_SECURE': False,
})

options['http_errors'] = defaultdict(lambda: 'http500', {
        # HTTP status code: route name
        400: 'http400',
        401: 'signin',
        403: 'http403',
        404: 'http404',
        500: 'http500',
    })