From 46ff09745960e4d604adf962bf5863545da220dad13ff5eab21725849c1ef94b Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 11 May 2022 10:41:49 +0000 Subject: [PATCH] - update to 2.1.2: * The development server does not set ``Transfer-Encoding: chunked`` for 1xx, 204, 304, and HEAD responses. :issue:`2375` * Response HTML for exceptions and redirects starts with ```` and ````. :issue:`2390` * Fix ability to set some ``cache_control`` attributes to ``False``. :issue:`2379` * Disable ``keep-alive`` connections in the development server, which are not supported sufficiently by Python's ``http.server``. :issue:`2397` - drop 2402-dev_server.patch (upstream) OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Werkzeug?expand=0&rev=66 --- 2402-dev_server.patch | 165 ---------------------------------------- Werkzeug-2.1.1.tar.gz | 3 - Werkzeug-2.1.2.tar.gz | 3 + python-Werkzeug.changes | 15 ++++ python-Werkzeug.spec | 6 +- 5 files changed, 19 insertions(+), 173 deletions(-) delete mode 100644 2402-dev_server.patch delete mode 100644 Werkzeug-2.1.1.tar.gz create mode 100644 Werkzeug-2.1.2.tar.gz diff --git a/2402-dev_server.patch b/2402-dev_server.patch deleted file mode 100644 index a20b28a..0000000 --- a/2402-dev_server.patch +++ /dev/null @@ -1,165 +0,0 @@ -From 9d83ed43027b6538efde5b708395fed36700d970 Mon Sep 17 00:00:00 2001 -From: David Lord -Date: Mon, 25 Apr 2022 11:08:09 -0700 -Subject: [PATCH] mark test that use the dev_server - ---- - setup.cfg | 2 ++ - tests/middleware/test_http_proxy.py | 1 + - tests/test_debug.py | 1 + - tests/test_serving.py | 15 +++++++++++++++ - 4 files changed, 19 insertions(+) - ---- a/setup.cfg -+++ b/setup.cfg -@@ -44,6 +44,8 @@ where = src - testpaths = tests - filterwarnings = - error -+markers = -+ dev_server: tests that start the dev server - - [coverage:run] - branch = True ---- a/tests/middleware/test_http_proxy.py -+++ b/tests/middleware/test_http_proxy.py -@@ -6,6 +6,7 @@ from werkzeug.wrappers import Response - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_http_proxy(standard_app): - app = ProxyMiddleware( - Response("ROOT"), ---- a/tests/test_debug.py -+++ b/tests/test_debug.py -@@ -247,6 +247,7 @@ def test_get_machine_id(): - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") - @pytest.mark.parametrize("crash", (True, False)) -+@pytest.mark.dev_server - def test_basic(dev_server, crash): - c = dev_server(use_debugger=True) - r = c.request("/crash" if crash else "") ---- a/tests/test_serving.py -+++ b/tests/test_serving.py -@@ -35,6 +35,7 @@ from werkzeug.test import stream_encode_ - ), - ], - ) -+@pytest.mark.dev_server - def test_server(tmp_path, dev_server, kwargs: dict): - if kwargs.get("hostname") == "unix": - kwargs["hostname"] = f"unix://{tmp_path / 'test.sock'}" -@@ -46,6 +47,7 @@ def test_server(tmp_path, dev_server, kw - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_untrusted_host(standard_app): - r = standard_app.request( - "http://missing.test:1337/index.html#ignore", -@@ -59,6 +61,7 @@ def test_untrusted_host(standard_app): - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_double_slash_path(standard_app): - r = standard_app.request("//double-slash") - assert "double-slash" not in r.json["HTTP_HOST"] -@@ -66,6 +69,7 @@ def test_double_slash_path(standard_app) - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_500_error(standard_app): - r = standard_app.request("/crash") - assert r.status == 500 -@@ -73,6 +77,7 @@ def test_500_error(standard_app): - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_ssl_dev_cert(tmp_path, dev_server): - client = dev_server(ssl_context=make_ssl_devcert(tmp_path)) - r = client.request() -@@ -80,6 +85,7 @@ def test_ssl_dev_cert(tmp_path, dev_serv - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_ssl_object(dev_server): - client = dev_server(ssl_context="custom") - r = client.request() -@@ -91,6 +97,7 @@ def test_ssl_object(dev_server): - @pytest.mark.skipif( - os.name == "nt" and "CI" in os.environ, reason="unreliable on Windows during CI" - ) -+@pytest.mark.dev_server - def test_reloader_sys_path(tmp_path, dev_server, reloader_type): - """This tests the general behavior of the reloader. It also tests - that fixing an import error triggers a reload, not just Python -@@ -129,6 +136,7 @@ def test_exclude_patterns(find): - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_wrong_protocol(standard_app): - """An HTTPS request to an HTTP server doesn't show a traceback. - https://github.com/pallets/werkzeug/pull/838 -@@ -142,6 +150,7 @@ def test_wrong_protocol(standard_app): - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_content_type_and_length(standard_app): - r = standard_app.request() - assert "CONTENT_TYPE" not in r.json -@@ -159,6 +168,7 @@ def test_port_is_int(): - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") - @pytest.mark.parametrize("send_length", [False, True]) -+@pytest.mark.dev_server - def test_chunked_request(monkeypatch, dev_server, send_length): - stream, length, boundary = stream_encode_multipart( - { -@@ -200,6 +210,7 @@ def test_chunked_request(monkeypatch, de - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_multiple_headers_concatenated(standard_app): - """A header key can be sent multiple times. The server will join all - the values with commas. -@@ -224,6 +235,7 @@ def test_multiple_headers_concatenated(s - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_multiline_header_folding(standard_app): - """A header value can be split over multiple lines with a leading - tab. The server will remove the newlines and preserve the tabs. -@@ -242,6 +254,7 @@ def test_multiline_header_folding(standa - - - @pytest.mark.parametrize("endpoint", ["", "crash"]) -+@pytest.mark.dev_server - def test_streaming_close_response(dev_server, endpoint): - """When using HTTP/1.0, chunked encoding is not supported. Fall - back to Connection: close, but this allows no reliable way to -@@ -252,6 +265,7 @@ def test_streaming_close_response(dev_se - assert r.data == "".join(str(x) + "\n" for x in range(5)).encode() - - -+@pytest.mark.dev_server - def test_streaming_chunked_response(dev_server): - """When using HTTP/1.1, use Transfer-Encoding: chunked for streamed - responses, since it can distinguish the end of the response without -@@ -265,6 +279,7 @@ def test_streaming_chunked_response(dev_ - - - @pytest.mark.filterwarnings("ignore::pytest.PytestUnraisableExceptionWarning") -+@pytest.mark.dev_server - def test_streaming_chunked_truncation(dev_server): - """When using HTTP/1.1, chunked encoding allows the client to detect - content truncated by a prematurely closed connection. diff --git a/Werkzeug-2.1.1.tar.gz b/Werkzeug-2.1.1.tar.gz deleted file mode 100644 index 4eaa633..0000000 --- a/Werkzeug-2.1.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f8e89a20aeabbe8a893c24a461d3ee5dad2123b05cc6abd73ceed01d39c3ae74 -size 833848 diff --git a/Werkzeug-2.1.2.tar.gz b/Werkzeug-2.1.2.tar.gz new file mode 100644 index 0000000..70755fd --- /dev/null +++ b/Werkzeug-2.1.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6 +size 835169 diff --git a/python-Werkzeug.changes b/python-Werkzeug.changes index 80cc600..483dac3 100644 --- a/python-Werkzeug.changes +++ b/python-Werkzeug.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed May 11 10:40:41 UTC 2022 - Dirk Müller + +- update to 2.1.2: + * The development server does not set ``Transfer-Encoding: chunked`` + for 1xx, 204, 304, and HEAD responses. :issue:`2375` + * Response HTML for exceptions and redirects starts with + ```` and ````. :issue:`2390` + * Fix ability to set some ``cache_control`` attributes to ``False``. + :issue:`2379` + * Disable ``keep-alive`` connections in the development server, which + are not supported sufficiently by Python's ``http.server``. + :issue:`2397` +- drop 2402-dev_server.patch (upstream) + ------------------------------------------------------------------- Thu Apr 28 16:25:37 UTC 2022 - Matej Cepl diff --git a/python-Werkzeug.spec b/python-Werkzeug.spec index 4e2998d..7b6e5e4 100644 --- a/python-Werkzeug.spec +++ b/python-Werkzeug.spec @@ -20,17 +20,13 @@ %define skip_python2 1 %define skip_python36 1 Name: python-Werkzeug -Version: 2.1.1 +Version: 2.1.2 Release: 0 Summary: The Swiss Army knife of Python web development License: BSD-3-Clause Group: Development/Languages/Python URL: https://werkzeug.palletsprojects.com Source: https://files.pythonhosted.org/packages/source/W/Werkzeug/Werkzeug-%{version}.tar.gz -# PATCH-FIX-UPSTREAM 2402-dev_server.patch gh#pallets/werkzeug#2393 mcepl@suse.com -# upstream solution to mark tests which require development server -# from https://github.com/pallets/werkzeug/pull/2402 -Patch0: 2402-dev_server.patch # PATCH-FIX-UPSTREAM moved_root.patch bsc#[0-9]+ mcepl@suse.com # this patch makes things totally awesome Patch1: moved_root.patch