mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-11 17:38:50 -04:00
Merge pull request #2125 from alphagov/handle-405s
handle 405 METHOD NOT ALLOWEDs
This commit is contained in:
@@ -34,9 +34,8 @@ from notifications_utils.recipients import (
|
||||
)
|
||||
from notifications_utils.formatters import formatted_list
|
||||
from notifications_utils.sanitise_text import SanitiseASCII
|
||||
from werkzeug.exceptions import abort
|
||||
from werkzeug.exceptions import abort, HTTPException as WerkzeugHTTPException
|
||||
from werkzeug.local import LocalProxy
|
||||
from werkzeug.routing import RequestRedirect
|
||||
|
||||
from app import proxy_fix
|
||||
from app.config import configs
|
||||
@@ -584,9 +583,21 @@ def register_errorhandlers(application): # noqa (C901 too complex)
|
||||
), 400)
|
||||
return useful_headers_after_request(resp)
|
||||
|
||||
@application.errorhandler(RequestRedirect)
|
||||
def handle_301(error):
|
||||
return error
|
||||
@application.errorhandler(405)
|
||||
def handle_405(error):
|
||||
resp = make_response(render_template(
|
||||
"error/400.html",
|
||||
message=['Something went wrong, please go back and try again.']
|
||||
), 405)
|
||||
return useful_headers_after_request(resp)
|
||||
|
||||
@application.errorhandler(WerkzeugHTTPException)
|
||||
def handle_http_error(error):
|
||||
if error.code == 301:
|
||||
# RequestRedirect exception
|
||||
return error
|
||||
|
||||
return _error_response(error.code)
|
||||
|
||||
@application.errorhandler(500)
|
||||
@application.errorhandler(Exception)
|
||||
|
||||
@@ -60,3 +60,11 @@ def test_csrf_redirects_to_sign_in_page_if_not_signed_in(client, mocker):
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.sign_in', next='/cookies', _external=True)
|
||||
|
||||
|
||||
def test_405_returns_something_went_wrong_page(client, mocker):
|
||||
response = client.post('/')
|
||||
|
||||
assert response.status_code == 405
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
assert page.h1.string.strip() == 'Something went wrong, please go back and try again.'
|
||||
|
||||
Reference in New Issue
Block a user