Ejemplo n.º 1
0
    def test_aborter(self):
        abort = exceptions.abort
        self.assert_raises(exceptions.BadRequest, abort, 400)
        self.assert_raises(exceptions.Unauthorized, abort, 401)
        self.assert_raises(exceptions.Forbidden, abort, 403)
        self.assert_raises(exceptions.NotFound, abort, 404)
        self.assert_raises(exceptions.MethodNotAllowed, abort, 405, ['GET', 'HEAD'])
        self.assert_raises(exceptions.NotAcceptable, abort, 406)
        self.assert_raises(exceptions.RequestTimeout, abort, 408)
        self.assert_raises(exceptions.Gone, abort, 410)
        self.assert_raises(exceptions.LengthRequired, abort, 411)
        self.assert_raises(exceptions.PreconditionFailed, abort, 412)
        self.assert_raises(exceptions.RequestEntityTooLarge, abort, 413)
        self.assert_raises(exceptions.RequestURITooLarge, abort, 414)
        self.assert_raises(exceptions.UnsupportedMediaType, abort, 415)
        self.assert_raises(exceptions.UnprocessableEntity, abort, 422)
        self.assert_raises(exceptions.InternalServerError, abort, 500)
        self.assert_raises(exceptions.NotImplemented, abort, 501)
        self.assert_raises(exceptions.BadGateway, abort, 502)
        self.assert_raises(exceptions.ServiceUnavailable, abort, 503)

        myabort = exceptions.Aborter({1: exceptions.NotFound})
        self.assert_raises(LookupError, myabort, 404)
        self.assert_raises(exceptions.NotFound, myabort, 1)

        myabort = exceptions.Aborter(extra={1: exceptions.NotFound})
        self.assert_raises(exceptions.NotFound, myabort, 404)
        self.assert_raises(exceptions.NotFound, myabort, 1)
Ejemplo n.º 2
0
def test_aborter_custom():
    myabort = exceptions.Aborter({1: exceptions.NotFound})
    pytest.raises(LookupError, myabort, 404)
    pytest.raises(exceptions.NotFound, myabort, 1)

    myabort = exceptions.Aborter(extra={1: exceptions.NotFound})
    pytest.raises(exceptions.NotFound, myabort, 404)
    pytest.raises(exceptions.NotFound, myabort, 1)
Ejemplo n.º 3
0
from app import app


class BandwidthExceeded(ex.HTTPException):
    """
    Create custom status code for error 509
    """
    code = 509
    description = 'The server is temporarily unable to service your request due to the site owner ' \
                  'reaching his/her bandwidth limit. Please try again later. '


ex.default_exceptions[509] = BandwidthExceeded
HTTP_STATUS_CODES[509] = 'Bandwidth Limit Exceeded'
abort = ex.Aborter()

# change format of log message
# here, we've set the timestamp, logging level, message, source file & line no where log entry originated
LOG_FORMAT = "%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]"


@app.errorhandler(404)
def page_not_found(error):
    errs = str(error).split(':')[-1].split('.')
    print(errs)
    return render_template_string(
        '''
        <html>
            <head>
                <title>Page not found</title>
Ejemplo n.º 4
0
class BandwidthLimit(HTTPExceptionMixin, exceptions.HTTPException):
    code = httpcode.BANDWIDTH_LIMIT
    description = "BANDWIDTH_LIMIT"


class NotExtended(HTTPExceptionMixin, exceptions.HTTPException):
    code = httpcode.NOT_EXTENDED
    description = "NOT_EXTENDED"


class NetworkAuthenticationRequired(HTTPExceptionMixin,
                                    exceptions.HTTPException):
    code = httpcode.NETWORK_AUTHENTICATION_REQUIRED
    description = "NETWORK_AUTHENTICATION_REQUIRED"


class UnknownError(HTTPExceptionMixin, exceptions.HTTPException):
    code = httpcode.UNKNOWN_ERROR
    description = "UNKNOWN_ERROR"


_errors = inspect.getmembers(
    sys.modules[__name__],
    lambda c: inspect.isclass(c) and issubclass(c, exceptions.HTTPException),
)

# until a better solution are found
setattr(flask, "abort",
        exceptions.Aborter(mapping={e.code: e
                                    for _, e in _errors}))