Return HTTP 405 on InvalidUsage rather than 500

This also stops it filling up the logs. This happens for HEAD requests
at the moment - which perhaps should be handled better, but that's a
different issue.
This commit is contained in:
Russ Garrett 2018-04-14 17:11:16 +01:00 committed by Simon Willison
commit efbb4e8337

View file

@ -1,6 +1,6 @@
from sanic import Sanic from sanic import Sanic
from sanic import response from sanic import response
from sanic.exceptions import NotFound from sanic.exceptions import NotFound, InvalidUsage
from sanic.views import HTTPMethodView from sanic.views import HTTPMethodView
from sanic.request import RequestParameters from sanic.request import RequestParameters
from jinja2 import Environment, FileSystemLoader, ChoiceLoader, PrefixLoader from jinja2 import Environment, FileSystemLoader, ChoiceLoader, PrefixLoader
@ -1258,6 +1258,10 @@ class Datasette:
status = 404 status = 404
info = {} info = {}
message = exception.args[0] message = exception.args[0]
elif isinstance(exception, InvalidUsage):
status = 405
info = {}
message = exception.args[0]
elif isinstance(exception, DatasetteError): elif isinstance(exception, DatasetteError):
status = exception.status status = exception.status
info = exception.error_dict info = exception.error_dict