forked from pool/python-tornado6
- Revert back to 6.0.4 for incompatibility with python-distributed.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-tornado6?expand=0&rev=15
This commit is contained in:
74
python-tornado6-httpclient-test.patch
Normal file
74
python-tornado6-httpclient-test.patch
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
diff -PpuriN tornado-6.0.4/tornado/simple_httpclient.py tornado-6.0.4-mod/tornado/simple_httpclient.py
|
||||||
|
--- tornado-6.0.4/tornado/simple_httpclient.py 2020-03-02 20:21:37.000000000 +0100
|
||||||
|
+++ tornado-6.0.4-mod/tornado/simple_httpclient.py 2020-05-05 17:52:46.375282118 +0200
|
||||||
|
@@ -626,17 +626,14 @@ class _HTTPConnection(httputil.HTTPMessa
|
||||||
|
)
|
||||||
|
new_request.max_redirects = self.request.max_redirects - 1
|
||||||
|
del new_request.headers["Host"]
|
||||||
|
- # https://tools.ietf.org/html/rfc7231#section-6.4
|
||||||
|
- #
|
||||||
|
- # The original HTTP spec said that after a 301 or 302
|
||||||
|
- # redirect, the request method should be preserved.
|
||||||
|
- # However, browsers implemented this by changing the
|
||||||
|
- # method to GET, and the behavior stuck. 303 redirects
|
||||||
|
- # always specified this POST-to-GET behavior (arguably 303
|
||||||
|
- # redirects should change *all* requests to GET, but
|
||||||
|
- # libcurl only does this for POST so we follow their
|
||||||
|
- # example).
|
||||||
|
- if self.code in (301, 302, 303) and self.request.method == "POST":
|
||||||
|
+ # http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4
|
||||||
|
+ # Client SHOULD make a GET request after a 303.
|
||||||
|
+ # According to the spec, 302 should be followed by the same
|
||||||
|
+ # method as the original request, but in practice browsers
|
||||||
|
+ # treat 302 the same as 303, and many servers use 302 for
|
||||||
|
+ # compatibility with pre-HTTP/1.1 user agents which don't
|
||||||
|
+ # understand the 303 status.
|
||||||
|
+ if self.code in (302, 303):
|
||||||
|
new_request.method = "GET"
|
||||||
|
new_request.body = None
|
||||||
|
for h in [
|
||||||
|
diff -PpuriN tornado-6.0.4/tornado/test/httpclient_test.py tornado-6.0.4-mod/tornado/test/httpclient_test.py
|
||||||
|
--- tornado-6.0.4/tornado/test/httpclient_test.py 2020-03-02 20:21:37.000000000 +0100
|
||||||
|
+++ tornado-6.0.4-mod/tornado/test/httpclient_test.py 2020-05-05 17:53:39.259950459 +0200
|
||||||
|
@@ -126,7 +126,7 @@ class AllMethodsHandler(RequestHandler):
|
||||||
|
def method(self):
|
||||||
|
self.write(self.request.method)
|
||||||
|
|
||||||
|
- get = head = post = put = delete = options = patch = other = method # type: ignore
|
||||||
|
+ get = post = put = delete = options = patch = other = method # type: ignore
|
||||||
|
|
||||||
|
|
||||||
|
class SetHeaderHandler(RequestHandler):
|
||||||
|
@@ -322,32 +322,6 @@ Transfer-Encoding: chunked
|
||||||
|
)
|
||||||
|
self.assertEqual(response.body, b"Put body: ")
|
||||||
|
|
||||||
|
- def test_method_after_redirect(self):
|
||||||
|
- # Legacy redirect codes (301, 302) convert POST requests to GET.
|
||||||
|
- for status in [301, 302, 303]:
|
||||||
|
- url = "/redirect?url=/all_methods&status=%d" % status
|
||||||
|
- resp = self.fetch(url, method="POST", body=b"")
|
||||||
|
- self.assertEqual(b"GET", resp.body)
|
||||||
|
-
|
||||||
|
- # Other methods are left alone.
|
||||||
|
- for method in ["GET", "OPTIONS", "PUT", "DELETE"]:
|
||||||
|
- resp = self.fetch(url, method=method, allow_nonstandard_methods=True)
|
||||||
|
- self.assertEqual(utf8(method), resp.body)
|
||||||
|
- # HEAD is different so check it separately.
|
||||||
|
- resp = self.fetch(url, method="HEAD")
|
||||||
|
- self.assertEqual(200, resp.code)
|
||||||
|
- self.assertEqual(b"", resp.body)
|
||||||
|
-
|
||||||
|
- # Newer redirects always preserve the original method.
|
||||||
|
- for status in [307, 308]:
|
||||||
|
- url = "/redirect?url=/all_methods&status=307"
|
||||||
|
- for method in ["GET", "OPTIONS", "POST", "PUT", "DELETE"]:
|
||||||
|
- resp = self.fetch(url, method=method, allow_nonstandard_methods=True)
|
||||||
|
- self.assertEqual(method, to_unicode(resp.body))
|
||||||
|
- resp = self.fetch(url, method="HEAD")
|
||||||
|
- self.assertEqual(200, resp.code)
|
||||||
|
- self.assertEqual(b"", resp.body)
|
||||||
|
-
|
||||||
|
def test_credentials_in_url(self):
|
||||||
|
url = self.get_url("/auth").replace("http://", "http://me:secret@")
|
||||||
|
response = self.fetch(url)
|
@@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Feb 7 12:53:21 UTC 2021 - Matej Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
- Revert back to 6.0.4 for incompatibility with python-distributed.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Jan 30 20:22:29 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
Sat Jan 30 20:22:29 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
@@ -19,22 +19,26 @@
|
|||||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
%define skip_python2 1
|
%define skip_python2 1
|
||||||
Name: python-tornado6
|
Name: python-tornado6
|
||||||
Version: 6.1
|
Version: 6.0.4
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Open source version of scalable, non-blocking web server that power FriendFeed
|
Summary: Open source version of scalable, non-blocking web server that power FriendFeed
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://www.tornadoweb.org
|
URL: https://www.tornadoweb.org
|
||||||
Source: https://files.pythonhosted.org/packages/source/t/tornado/tornado-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/t/tornado/tornado-%{version}.tar.gz
|
||||||
# PATCH-FIX-OPENSUSE ignore-resourcewarning-doctests.patch -- ignore resource warnings on OBS
|
Patch1: tornado-testsuite_timeout.patch
|
||||||
Patch0: ignore-resourcewarning-doctests.patch
|
Patch2: skip-failing-tests.patch
|
||||||
|
Patch3: ignore-resourcewarning-doctests.patch
|
||||||
|
Patch4: python-tornado6-httpclient-test.patch
|
||||||
BuildRequires: %{python_module base >= 3.5}
|
BuildRequires: %{python_module base >= 3.5}
|
||||||
|
BuildRequires: %{python_module certifi}
|
||||||
BuildRequires: %{python_module devel}
|
BuildRequires: %{python_module devel}
|
||||||
BuildRequires: %{python_module pycares}
|
|
||||||
BuildRequires: %{python_module pycurl}
|
BuildRequires: %{python_module pycurl}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: %{python_module simplejson}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
Requires: python
|
Requires: python
|
||||||
|
Requires: python-simplejson
|
||||||
Recommends: python-Twisted
|
Recommends: python-Twisted
|
||||||
Recommends: python-pycares
|
Recommends: python-pycares
|
||||||
Recommends: python-pycurl
|
Recommends: python-pycurl
|
||||||
@@ -63,9 +67,10 @@ FriendFeed servers. (For more information on scaling servers to support
|
|||||||
thousands of clients, see The C10K problem.)
|
thousands of clients, see The C10K problem.)
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n tornado-%{version}
|
%setup -q -n tornado-%{version}
|
||||||
# Fix non-executable script rpmlint issue:
|
# Fix non-executable script rpmlint issue:
|
||||||
find tornado -name "*.py" -exec sed -i "/#\!\/usr\/bin\/.*/d" {} \;
|
find demos tornado -name "*.py" -exec sed -i "/#\!\/usr\/bin\/.*/d" {} \;
|
||||||
|
%autopatch -p1
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
# remove egg-info _file_, being replaced by an egg-info directory
|
# remove egg-info _file_, being replaced by an egg-info directory
|
||||||
@@ -78,27 +83,19 @@ fi
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
%python_install
|
%python_install
|
||||||
%{python_expand #
|
%fdupes demos
|
||||||
# do not install tests
|
%python_expand rm -r %{buildroot}%{$python_sitearch}/tornado/test
|
||||||
rm -r %{buildroot}%{$python_sitearch}/tornado/test
|
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||||
# deduplicate files in python platlibdir
|
|
||||||
%fdupes %{buildroot}%{$python_sitearch}
|
|
||||||
# install demos into docdir and deduplicate
|
|
||||||
mkdir -p %{buildroot}%{_docdir}/$python-tornado6/
|
|
||||||
cp -r demos %{buildroot}%{_docdir}/$python-tornado6/
|
|
||||||
find %{buildroot}%{_docdir}/$python-tornado6 -name "*.py" -exec sed -i "1{s|^#!.*$|%{_bindir}/$python|}" {} \;
|
|
||||||
%fdupes %{buildroot}%{_docdir}/$python-tornado6
|
|
||||||
}
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
export ASYNC_TEST_TIMEOUT=30
|
export ASYNC_TEST_TIMEOUT=30
|
||||||
export PYTHONDONTWRITEBYTECODE=1
|
export PYTHONDONTWRITEBYTECODE=1
|
||||||
export TRAVIS=1
|
export TRAVIS=1
|
||||||
%python_exec -m tornado.test.runtests
|
%python_exec -m tornado.test.runtests --verbose
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%doc %{_docdir}/%{python_prefix}-tornado6
|
%doc demos
|
||||||
%{python_sitearch}/tornado
|
%{python_sitearch}/tornado
|
||||||
%{python_sitearch}/tornado-%{version}-py*.egg-info
|
%{python_sitearch}/tornado-%{version}-py*.egg-info
|
||||||
|
|
||||||
|
40
skip-failing-tests.patch
Normal file
40
skip-failing-tests.patch
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
From: Benjamin Drung <benjamin.drung@cloud.ionos.com>
|
||||||
|
Date: Tue, 18 Dec 2018 18:35:28 +0100
|
||||||
|
Subject: [PATCH] Skip failing openssl 1.1.1 tests (for now)
|
||||||
|
|
||||||
|
Four tests fail when using openssl 1.1.1 with TLS 1.3 support. Disable
|
||||||
|
these tests for now. Please fix the bug and re-enable them again.
|
||||||
|
|
||||||
|
Bug: https://github.com/tornadoweb/tornado/issues/2536
|
||||||
|
---
|
||||||
|
tornado/test/iostream_test.py | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
Index: tornado-6.0.4/tornado/test/iostream_test.py
|
||||||
|
===================================================================
|
||||||
|
--- tornado-6.0.4.orig/tornado/test/iostream_test.py 2020-03-11 11:39:55.709274416 +0100
|
||||||
|
+++ tornado-6.0.4/tornado/test/iostream_test.py 2020-03-11 11:40:43.305542700 +0100
|
||||||
|
@@ -189,6 +189,7 @@ class TestReadWriteMixin(object):
|
||||||
|
return IOStreamPairContext(self, kwargs)
|
||||||
|
|
||||||
|
@gen_test
|
||||||
|
+ @unittest.skip("Failing when using openssl 1.1.1 with TLS 1.3 support. See https://github.com/tornadoweb/tornado/issues/2536")
|
||||||
|
def test_write_zero_bytes(self):
|
||||||
|
# Attempting to write zero bytes should run the callback without
|
||||||
|
# going into an infinite loop.
|
||||||
|
@@ -240,6 +241,7 @@ class TestReadWriteMixin(object):
|
||||||
|
rs.close()
|
||||||
|
|
||||||
|
@gen_test
|
||||||
|
+ @unittest.skip("Failing when using openssl 1.1.1 with TLS 1.3 support. See https://github.com/tornadoweb/tornado/issues/2536")
|
||||||
|
def test_read_until_close_after_close(self):
|
||||||
|
# Similar to test_delayed_close_callback, but read_until_close takes
|
||||||
|
# a separate code path so test it separately.
|
||||||
|
@@ -793,6 +795,7 @@ class TestIOStreamMixin(TestReadWriteMix
|
||||||
|
@skipIfNonUnix
|
||||||
|
@skipPypy3V58
|
||||||
|
@gen_test
|
||||||
|
+ @unittest.skip("Failing when using openssl 1.1.1 with TLS 1.3 support. See https://github.com/tornadoweb/tornado/issues/2536")
|
||||||
|
def test_inline_read_error(self):
|
||||||
|
# An error on an inline read is raised without logging (on the
|
||||||
|
# assumption that it will eventually be noticed or logged further
|
3
tornado-6.0.4.tar.gz
Normal file
3
tornado-6.0.4.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc
|
||||||
|
size 496204
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:33c6e81d7bd55b468d2e793517c909b139960b6c790a60b7991b9b6b76fb9791
|
|
||||||
size 497359
|
|
22
tornado-testsuite_timeout.patch
Normal file
22
tornado-testsuite_timeout.patch
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Index: tornado-6.0.4/tornado/test/testing_test.py
|
||||||
|
===================================================================
|
||||||
|
--- tornado-6.0.4.orig/tornado/test/testing_test.py 2020-03-11 11:37:45.016537755 +0100
|
||||||
|
+++ tornado-6.0.4/tornado/test/testing_test.py 2020-03-11 11:38:38.740840572 +0100
|
||||||
|
@@ -54,7 +54,7 @@ class AsyncTestCaseTest(AsyncTestCase):
|
||||||
|
self.io_loop.add_timeout(self.io_loop.time() + 0.00, self.stop)
|
||||||
|
self.wait(timeout=0.02)
|
||||||
|
self.io_loop.add_timeout(self.io_loop.time() + 0.03, self.stop)
|
||||||
|
- self.wait(timeout=0.15)
|
||||||
|
+ self.wait(timeout=0.25)
|
||||||
|
|
||||||
|
|
||||||
|
class LeakTest(AsyncTestCase):
|
||||||
|
@@ -262,7 +262,7 @@ class GenTest(AsyncTestCase):
|
||||||
|
self.finished = True
|
||||||
|
|
||||||
|
def test_timeout_environment_variable(self):
|
||||||
|
- @gen_test(timeout=0.5)
|
||||||
|
+ @gen_test(timeout=0.9)
|
||||||
|
def test_long_timeout(self):
|
||||||
|
yield gen.sleep(0.25)
|
||||||
|
|
Reference in New Issue
Block a user