diff --git a/chord_drs/app.py b/chord_drs/app.py index b47bd37..655649e 100644 --- a/chord_drs/app.py +++ b/chord_drs/app.py @@ -4,7 +4,7 @@ from flask import Flask from flask_cors import CORS from flask_migrate import Migrate -from werkzeug.exceptions import BadRequest, Forbidden, NotFound, RequestedRangeNotSatisfiable +from werkzeug.exceptions import BadRequest, Forbidden, NotFound, MethodNotAllowed, RequestedRangeNotSatisfiable from .authz import authz_middleware from .backend import close_backend @@ -47,19 +47,11 @@ ) application.register_error_handler( BadRequest, - flask_errors.flask_error_wrap( - flask_errors.flask_bad_request_error, - drs_compat=True, - authz=authz_middleware, - ), + flask_errors.flask_error_wrap(flask_errors.flask_bad_request_error, drs_compat=True, authz=authz_middleware), ) application.register_error_handler( Forbidden, - flask_errors.flask_error_wrap( - flask_errors.flask_forbidden_error, - drs_compat=True, - authz=authz_middleware, - ), + flask_errors.flask_error_wrap(flask_errors.flask_forbidden_error, drs_compat=True, authz=authz_middleware), ) application.register_error_handler( NotFound, @@ -70,6 +62,10 @@ authz=authz_middleware, )(e), ) +application.register_error_handler( + MethodNotAllowed, + flask_errors.flask_error_wrap(flask_errors.flask_method_not_allowed_error, drs_compat=True, authz=authz_middleware), +) application.register_error_handler( RequestedRangeNotSatisfiable, flask_errors.flask_error_wrap( diff --git a/poetry.lock b/poetry.lock index 165c917..769e54a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -200,18 +200,18 @@ tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "p [[package]] name = "bento-lib" -version = "11.5.3" +version = "11.6.0" description = "A set of common utilities and helpers for Bento platform services." optional = false python-versions = "<4.0,>=3.10" files = [ - {file = "bento_lib-11.5.3-py3-none-any.whl", hash = "sha256:9a73bb54e9c03eedac76aaaa3375cccbec92ec745d42f6daed0f0a47c2a65281"}, - {file = "bento_lib-11.5.3.tar.gz", hash = "sha256:bd481ac387cb47de0822376e1b50d4676bdc8b4d967d5cbeec3a24d007b3f77d"}, + {file = "bento_lib-11.6.0-py3-none-any.whl", hash = "sha256:fa311b0a8ce01bb440fd0ae29996795aeef0b87f9c6a1f0ee89125d5a7c056db"}, + {file = "bento_lib-11.6.0.tar.gz", hash = "sha256:e72a63af97568fb7c4fe26efb8cc768e56dbc26a2d7cff4c04bb157fcc2784f9"}, ] [package.dependencies] aiofiles = ">=23.2.1,<24.0.0" -aiohttp = ">=3.9.3,<4" +aiohttp = ">=3.9.4,<4" flask = {version = ">=2.2.5,<4", optional = true, markers = "extra == \"flask\""} jsonschema = ">=4.20.0,<5" psycopg2-binary = ">=2.9.9,<3.0" @@ -275,17 +275,17 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "boto3" -version = "1.34.83" +version = "1.34.84" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.34.83-py3-none-any.whl", hash = "sha256:33cf93f6de5176f1188c923f4de1ae149ed723b89ed12e434f2b2f628491769e"}, - {file = "boto3-1.34.83.tar.gz", hash = "sha256:9733ce811bd82feab506ad9309e375a79cabe8c6149061971c17754ce8997551"}, + {file = "boto3-1.34.84-py3-none-any.whl", hash = "sha256:7a02f44af32095946587d748ebeb39c3fa15b9d7275307ff612a6760ead47e04"}, + {file = "boto3-1.34.84.tar.gz", hash = "sha256:91e6343474173e9b82f603076856e1d5b7b68f44247bdd556250857a3f16b37b"}, ] [package.dependencies] -botocore = ">=1.34.83,<1.35.0" +botocore = ">=1.34.84,<1.35.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -294,13 +294,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.34.83" +version = "1.34.84" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.34.83-py3-none-any.whl", hash = "sha256:0a3fbbe018416aeefa8978454fb0b8129adbaf556647b72269bf02e4bf1f4161"}, - {file = "botocore-1.34.83.tar.gz", hash = "sha256:0f302aa76283d4df62b4fbb6d3d20115c1a8957fc02171257fc93904d69d5636"}, + {file = "botocore-1.34.84-py3-none-any.whl", hash = "sha256:da1ae0a912e69e10daee2a34dafd6c6c106450d20b8623665feceb2d96c173eb"}, + {file = "botocore-1.34.84.tar.gz", hash = "sha256:a2b309bf5594f0eb6f63f355ade79ba575ce8bf672e52e91da1a7933caa245e6"}, ] [package.dependencies] @@ -2371,4 +2371,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "a1b1fbd8082d39ea59b37a7a31d4df53e164d56b218542d00ca70c2a26e575b3" +content-hash = "1c54406fbc33d550311b65eb024f843452ada0c7b0f223f6d4475a3891fc95d8" diff --git a/pyproject.toml b/pyproject.toml index 93c2f7f..19e9a07 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ include = [ [tool.poetry.dependencies] python = "^3.10" boto3 = ">=1.34.81,<1.35" -bento-lib = {version = "^11.5.2", extras = ["flask"]} +bento-lib = {version = "^11.6.0", extras = ["flask"]} flask = ">=2.2.5,<2.3" flask-sqlalchemy = ">=3.1.1,<3.2" flask-migrate = ">=4.0.5,<4.1"