summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/python-flask-restful-werkzeug-compat.patch36
-rw-r--r--gnu/packages/python-web.scm8
3 files changed, 41 insertions, 4 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 3be54b2627..1dd7e0a6a8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1327,6 +1327,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
   %D%/packages/patches/python-configobj-setuptools.patch	\
   %D%/packages/patches/python-faker-fix-build-32bit.patch	\
+  %D%/packages/patches/python-flask-restful-werkzeug-compat.patch	\
   %D%/packages/patches/python-keras-integration-test.patch	\
   %D%/packages/patches/python-pep8-stdlib-tokenize-compat.patch \
   %D%/packages/patches/python-pyfakefs-remove-bad-test.patch	\
diff --git a/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch b/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch
new file mode 100644
index 0000000000..0e928ef455
--- /dev/null
+++ b/gnu/packages/patches/python-flask-restful-werkzeug-compat.patch
@@ -0,0 +1,36 @@
+We need one patch on top of 0.3.8 for compatibility with Werkzeug 1.0.
+
+Taken from upstream:
+https://github.com/flask-restful/flask-restful/commit/73376a488907af3042b52678ac4c23f8a8911e5b
+
+diff --git a/tests/test_api.py b/tests/test_api.py
+index f7f8e661..6795d362 100644
+--- a/tests/test_api.py
++++ b/tests/test_api.py
+@@ -445,7 +445,9 @@ def test_handle_non_api_error(self):
+ 
+         resp = app.get("/foo")
+         self.assertEquals(resp.status_code, 404)
+-        self.assertEquals('text/html', resp.headers['Content-Type'])
++        # in newer versions of werkzeug this is `text/html; charset=utf8`
++        content_type, _, _ = resp.headers['Content-Type'].partition(';')
++        self.assertEquals('text/html', content_type)
+ 
+     def test_non_api_error_404_catchall(self):
+         app = Flask(__name__)
+diff --git a/tests/test_reqparse.py b/tests/test_reqparse.py
+index 2f1fbedf..9776f17c 100644
+--- a/tests/test_reqparse.py
++++ b/tests/test_reqparse.py
+@@ -2,9 +2,9 @@
+ import unittest
+ from mock import Mock, patch
+ from flask import Flask
+-from werkzeug import exceptions, MultiDict
++from werkzeug import exceptions
+ from werkzeug.wrappers import Request
+-from werkzeug.datastructures import FileStorage
++from werkzeug.datastructures import FileStorage, MultiDict
+ from flask_restful.reqparse import Argument, RequestParser, Namespace
+ import six
+ import decimal
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 6d4204bad0..ae01f83611 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2173,14 +2173,15 @@ pretty printer and a tree visitor.")
 (define-public python-flask-restful
   (package
     (name "python-flask-restful")
-    (version "0.3.7")
+    (version "0.3.8")
     (source
       (origin
         (method url-fetch)
         (uri (pypi-uri "Flask-RESTful" version))
+        (patches (search-patches "python-flask-restful-werkzeug-compat.patch"))
         (sha256
          (base32
-          "1a9cbwkr6krryyzq4sd3f415nkkc6dyfls5i3pgyibs94g0hw97q"))))
+          "05b9lzx5yc3wgml2bcq50lq35h66m8zpj6dc9advcb5z3acsbaay"))))
     (build-system python-build-system)
     (propagated-inputs
       `(("python-aniso8601" ,python-aniso8601)
@@ -2191,8 +2192,7 @@ pretty printer and a tree visitor.")
       `(;; Optional dependency of Flask. Tests need it.
         ("python-blinker" ,python-blinker)
         ("python-mock" ,python-mock) ; For tests
-        ("python-nose" ,python-nose) ; For tests
-        ("python-sphinx" ,python-sphinx)))
+        ("python-nose" ,python-nose)))  ;for tests
     (home-page
       "https://www.github.com/flask-restful/flask-restful/")
     (synopsis