Accepting request 976285 from devel:languages:python
- 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 ``<!doctype html>`` and ``<html lang=en>``. :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/request/show/976285 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Werkzeug?expand=0&rev=37
This commit is contained in:
commit
698518b8ad
@ -1,165 +0,0 @@
|
|||||||
From 9d83ed43027b6538efde5b708395fed36700d970 Mon Sep 17 00:00:00 2001
|
|
||||||
From: David Lord <davidism@gmail.com>
|
|
||||||
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.
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:f8e89a20aeabbe8a893c24a461d3ee5dad2123b05cc6abd73ceed01d39c3ae74
|
|
||||||
size 833848
|
|
3
Werkzeug-2.1.2.tar.gz
Normal file
3
Werkzeug-2.1.2.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1ce08e8093ed67d638d63879fd1ba3735817f7a80de3674d293f5984f25fb6e6
|
||||||
|
size 835169
|
@ -1,3 +1,18 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 11 10:40:41 UTC 2022 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
- 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
|
||||||
|
``<!doctype html>`` and ``<html lang=en>``. :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 <mcepl@suse.com>
|
Thu Apr 28 16:25:37 UTC 2022 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
@ -20,17 +20,13 @@
|
|||||||
%define skip_python2 1
|
%define skip_python2 1
|
||||||
%define skip_python36 1
|
%define skip_python36 1
|
||||||
Name: python-Werkzeug
|
Name: python-Werkzeug
|
||||||
Version: 2.1.1
|
Version: 2.1.2
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The Swiss Army knife of Python web development
|
Summary: The Swiss Army knife of Python web development
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: Development/Languages/Python
|
Group: Development/Languages/Python
|
||||||
URL: https://werkzeug.palletsprojects.com
|
URL: https://werkzeug.palletsprojects.com
|
||||||
Source: https://files.pythonhosted.org/packages/source/W/Werkzeug/Werkzeug-%{version}.tar.gz
|
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
|
# PATCH-FIX-UPSTREAM moved_root.patch bsc#[0-9]+ mcepl@suse.com
|
||||||
# this patch makes things totally awesome
|
# this patch makes things totally awesome
|
||||||
Patch1: moved_root.patch
|
Patch1: moved_root.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user