diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/python-werkzeug-tests.patch | 58 | ||||
-rw-r--r-- | gnu/packages/python-web.scm | 25 |
3 files changed, 84 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index ccdc881a88..fcac217354 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1672,6 +1672,7 @@ dist_patch_DATA = \ %D%/packages/patches/python-unittest2-python3-compat.patch \ %D%/packages/patches/python-unittest2-remove-argparse.patch \ %D%/packages/patches/python-waitress-fix-tests.patch \ + %D%/packages/patches/python-werkzeug-tests.patch \ %D%/packages/patches/qemu-build-info-manual.patch \ %D%/packages/patches/qemu-CVE-2021-20203.patch \ %D%/packages/patches/qemu-glibc-2.27.patch \ diff --git a/gnu/packages/patches/python-werkzeug-tests.patch b/gnu/packages/patches/python-werkzeug-tests.patch new file mode 100644 index 0000000000..4eca53f30c --- /dev/null +++ b/gnu/packages/patches/python-werkzeug-tests.patch @@ -0,0 +1,58 @@ +Do not leave open files behind as this triggers 'ResourceWarning' and leads +these tests to fail. + +--- Werkzeug-1.0.1/tests/test_datastructures.py 2020-03-31 19:48:06.000000000 +0200 ++++ Werkzeug-1.0.1/tests/test_datastructures.py 2021-11-21 18:19:11.304369878 +0100 +@@ -1238,9 +1238,10 @@ + def test_save_to_pathlib_dst(self, tmp_path): + src = tmp_path / "src.txt" + src.write_text(u"test") +- storage = self.storage_class(src.open("rb")) +- dst = tmp_path / "dst.txt" +- storage.save(dst) ++ with src.open("rb") as input: ++ storage = self.storage_class(input) ++ dst = tmp_path / "dst.txt" ++ storage.save(dst) + assert dst.read_text() == "test" + + def test_save_to_bytes_io(self): +@@ -1251,11 +1252,12 @@ + + def test_save_to_file(self, tmp_path): + path = tmp_path / "file.data" +- storage = self.storage_class(io.BytesIO(b"one\ntwo")) +- with path.open("wb") as dst: +- storage.save(dst) +- with path.open("rb") as src: +- assert src.read() == b"one\ntwo" ++ with io.BytesIO(b"one\ntwo") as input: ++ storage = self.storage_class(input) ++ with path.open("wb") as dst: ++ storage.save(dst) ++ with path.open("rb") as src: ++ assert src.read() == b"one\ntwo" + + + @pytest.mark.parametrize("ranges", ([(0, 1), (-5, None)], [(5, None)])) +--- Werkzeug-1.0.1/tests/test_formparser.py 2020-03-31 19:48:06.000000000 +0200 ++++ Werkzeug-1.0.1/tests/test_formparser.py 2021-11-21 22:11:43.654622751 +0100 +@@ -27,7 +27,7 @@ + from werkzeug.test import create_environ + from werkzeug.wrappers import Request + from werkzeug.wrappers import Response +- ++import warnings + + @Request.application + def form_data_consumer(request): +@@ -242,6 +244,9 @@ + + class TestMultiPart(object): + def test_basic(self): ++ # Ignore leaked file descriptor of unknown origin. ++ warnings.filterwarnings(action="ignore", message="unclosed", category=ResourceWarning) ++ + resources = join(dirname(__file__), "multipart") + client = Client(form_data_consumer, Response) + diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index f34e352612..cadfa05e3a 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -4088,6 +4088,31 @@ uploads, a powerful URL routing system and a bunch of community-contributed addon modules.") (license license:x11))) +(define-public python-werkzeug-1.0 + (package + (inherit python-werkzeug) + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "Werkzeug" version)) + (sha256 + (base32 + "0z74sa1xw5h20yin9faj0vvdbq713cgbj84klc72jr9nmpjv303c")) + (patches (search-patches "python-werkzeug-tests.patch")))) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (invoke "python" "-m" "pytest")))))) + (propagated-inputs + `(("python-requests" ,python-requests))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-timeout" ,python-pytest-timeout))))) + (define-public python-bottle (package (name "python-bottle") |