diff --git a/requirements-py3.txt b/requirements-py3.txt index d15bd16..ffb3942 100644 --- a/requirements-py3.txt +++ b/requirements-py3.txt @@ -1,5 +1,5 @@ six>=1.9.0 -WebOb>=1.2.3 +WebOb>=1.8.0 simplegeneric pytz netaddr>=0.7.12 diff --git a/requirements.txt b/requirements.txt index d15bd16..ffb3942 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ six>=1.9.0 -WebOb>=1.2.3 +WebOb>=1.8.0 simplegeneric pytz netaddr>=0.7.12 diff --git a/wsme/protocol.py b/wsme/protocol.py index b0107ab..f7c66da 100644 --- a/wsme/protocol.py +++ b/wsme/protocol.py @@ -126,7 +126,7 @@ def media_type_accept(request, content_types): """ if request.method in ['GET', 'HEAD']: if request.accept: - if request.accept.best_match(content_types): + if request.accept.acceptable_offers(content_types): return True error_message = ('Unacceptable Accept type: %s not in %s' % (request.accept, content_types)) diff --git a/wsme/rest/protocol.py b/wsme/rest/protocol.py index 5201ccf..1ecf4de 100644 --- a/wsme/rest/protocol.py +++ b/wsme/rest/protocol.py @@ -41,7 +41,11 @@ class RestProtocol(Protocol): context.outformat = None ext = os.path.splitext(request.path.split('/')[-1])[1] inmime = request.content_type - outmime = request.accept.best_match(self.content_types) + try: + offers = request.accept.acceptable_offers(self.content_types) + outmime = offers[0][0] + except IndexError: + outmime = None outformat = None informat = None diff --git a/wsme/root.py b/wsme/root.py index e71f1f7..7a41bc5 100644 --- a/wsme/root.py +++ b/wsme/root.py @@ -317,7 +317,11 @@ class WSRoot(object): # Attempt to correctly guess what content-type we should return. ctypes = [ct for ct in protocol.content_types if ct] if ctypes: - res_content_type = request.accept.best_match(ctypes) + try: + offers = request.accept.acceptable_offers(ctypes) + res_content_type = offers[0][0] + except IndexError: + res_content_type = None # If not we will attempt to convert the body to an accepted # output format.