Hello community,
here is the log from the commit of package python-CherryPy for openSUSE:Factory checked in at 2019-11-04 17:12:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-CherryPy (Old)
and /work/SRC/openSUSE:Factory/.python-CherryPy.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-CherryPy"
Mon Nov 4 17:12:43 2019 rev:23 rq:744173 version:18.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-CherryPy/python-CherryPy.changes 2019-09-30 15:54:24.670013057 +0200
+++ /work/SRC/openSUSE:Factory/.python-CherryPy.new.2990/python-CherryPy.changes 2019-11-04 17:12:45.712668512 +0100
@@ -1,0 +2,17 @@
+Wed Oct 30 13:15:39 UTC 2019 - Tomáš Chvátal
+
+- Skip known failing test upstream
+
+-------------------------------------------------------------------
+Fri Oct 11 07:43:34 UTC 2019 - Tomáš Chvátal
+
+- Do not remove cherrypy tests from distribution as other projects
+ use it for self testing too
+
+-------------------------------------------------------------------
+Mon Oct 7 13:26:26 UTC 2019 - Tomáš Chvátal
+
+- Update to 18.3.0:
+ * Support handling multiple exceptions when processing hooks
+
+-------------------------------------------------------------------
Old:
----
CherryPy-18.2.0.tar.gz
New:
----
CherryPy-18.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-CherryPy.spec ++++++
--- /var/tmp/diff_new_pack.Dzpo9w/_old 2019-11-04 17:12:47.340670251 +0100
+++ /var/tmp/diff_new_pack.Dzpo9w/_new 2019-11-04 17:12:47.344670255 +0100
@@ -19,11 +19,10 @@
%define skip_python2 1
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-CherryPy
-Version: 18.2.0
+Version: 18.3.0
Release: 0
Summary: Object-Oriented HTTP framework
License: BSD-3-Clause
-Group: Development/Languages/Python
URL: http://www.cherrypy.org
Source: https://files.pythonhosted.org/packages/source/C/CherryPy/CherryPy-%{version}.tar.gz
BuildRequires: %{python_module setuptools_scm}
@@ -77,12 +76,14 @@
%install
%python_install
-%python_expand rm -r %{buildroot}%{$python_sitelib}/cherrypy/test
+# Do not remove the tests as other project use them for self validation
+#%%python_expand rm -r %{buildroot}%{$python_sitelib}/cherrypy/test
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%python_clone -a %{buildroot}%{_bindir}/cherryd
%check
-%pytest -k 'not test_null_bytes'
+# test_HTTP11_Timeout_after_request https://github.com/cherrypy/cherrypy/issues/1817
+%pytest -k 'not test_null_bytes and not test_HTTP11_Timeout_after_request'
%post
%python_install_alternative cherryd
++++++ CherryPy-18.2.0.tar.gz -> CherryPy-18.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/.travis.yml new/CherryPy-18.3.0/.travis.yml
--- old/CherryPy-18.2.0/.travis.yml 2019-09-04 03:48:54.000000000 +0200
+++ new/CherryPy-18.3.0/.travis.yml 2019-10-03 02:02:02.000000000 +0200
@@ -85,7 +85,6 @@
# TODO: fix tests
- python: *pypy3
- env: TOXENV=pre-commit-pep257
- - python: nightly
include:
- <<: *lint_python_base
env: TOXENV=pre-commit
@@ -142,10 +141,10 @@
tags: true
all_branches: true
python: *mainstream_python
- user: jaraco
+ user: __token__
distributions: dists
password:
- secure: CQqUvtssQ4wmRluPcxh6m5lIXi83Qu9dAFAvZLS/+AQNIG78XECXv5xFTEdGSLX9yncKDpDKI3xRJeCKyO4OJUN0t6W1MRycY72+R63i9e9wPjfvtRqYH1TBT+no7jj/DHqXIrWSlpjRNAt4XXeSv7OzKWT4PmTNkNQSKyS1DWCmZGlbCKlV774Z9PbrfltflxL0V6DiX6ZfoY1THBO4rIopjMk/MPLgS5zvwLgXVbT9sK/DcPOgOq47iSLCs0oScbwiFzYW4DbcVZrBMv4ALtQTjk6ZEaBQ7KtKgsyxgi/ToVhjRxYg4rwvhjsyjixUdECLUqL3WgWfzW/lo82lhb79ERwhnjf1DvPNexlXhv9hHwHsFROpaOmM0nyDJsJg0rCNPVfO4SpBHEnd/ujlHO6yorHj0S54jZWqqDwD5gN19v3hEMT48Pc8uvazE9K1kMQbNXEzqn+SJjVB+DG7qK5Jm9Kk7ZC4R88hJAJNsR+SlFCXMGzkS9WUefUGLHQFfezZk43sMPIXMnh9d2XqCQo4QpUawdg3pwaTukFfyaHlK39CIHhZNas5D/UFL5spQPAAkH1IMcPILiSUwYYnXIJFWJIiulfEQalJroAQjrzvst/NVB8BbeYuCfmVLVOZw8Y6GOYONGgiXjT3nfmw/dN+uw+GY3EgAV5jl+fa434=
+ secure: r9jZVhWnwBpbQwkoAQnhcQajV6Hk8WKs53+P20YrNfLSrSfODmJFyljCLsUJH7TnmAdrnQfV19PXPfVXPucK2ZEg2E91/5z6pgADi01NX3QMr7vEpffk6ix0uHBSa3VMBF+VlmhCzAFnNIN0E7M4kjoc5Cr7qBWPwZpqd715axYxBKSIH4Cmt2cyW3ozMftNtbI+ujs+kJTX6m/2UAL8yngau0TWR5bUBaywTZdkfPIKxt2XDfTW5PuOTRgS6QSU+/Va+M1IJhFPthjmTO+t8U/qonSLA34nLkT7vJmME0lyQF0lr+IV41IKxEFz29hmzLY1dyZI5+bs3vEhxU1xGqwr1Hnif6f14TzeiubQrCxt1UP9D3HXguCNI4gGeny1OPJNNt5ezJDNha2HlIy2quLKgtW38TS0PPm7PDqgYhjidZyRXZ8G6A/DAwh00amCNkSN6lG7Lryd1QB44mYHCKm8XdLfBT94EqzSdgQyyoUAA87A8zB5zpHiRD2DGwrTxHkGQo7TTSVr82cYwkRW0nqE6bZkfNTrGLULB8872ZFGpbSbrAft5mDlSnprLRwrEA0SsFUd4O2W64pcvcJENa/NY+vvXAyd9jaHb5v0RpxUyllLrAIFuLEFHeHwyBAlMgq54dtYWqYa8pyJNoUiwOt158qzOE6wnoburP4KA9c=
cache:
pip: true
directories:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/CHANGES.rst new/CherryPy-18.3.0/CHANGES.rst
--- old/CherryPy-18.2.0/CHANGES.rst 2019-09-04 03:48:54.000000000 +0200
+++ new/CherryPy-18.3.0/CHANGES.rst 2019-10-03 02:02:02.000000000 +0200
@@ -1,3 +1,9 @@
+v18.3.0
+-------
+
+* :pr:`1806`: Support handling multiple exceptions when processing hooks as
+ reported in :issue:`1770`.
+
v18.2.0
-------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/CherryPy.egg-info/PKG-INFO new/CherryPy-18.3.0/CherryPy.egg-info/PKG-INFO
--- old/CherryPy-18.2.0/CherryPy.egg-info/PKG-INFO 2019-09-04 03:49:15.000000000 +0200
+++ new/CherryPy-18.3.0/CherryPy.egg-info/PKG-INFO 2019-10-03 02:02:23.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: CherryPy
-Version: 18.2.0
+Version: 18.3.0
Summary: Object-Oriented HTTP framework
Home-page: https://www.cherrypy.org
Author: CherryPy Team
@@ -140,10 +140,10 @@
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.5
+Provides-Extra: ssl
Provides-Extra: routes_dispatcher
+Provides-Extra: testing
Provides-Extra: json
-Provides-Extra: xcgi
Provides-Extra: memcached_session
-Provides-Extra: testing
-Provides-Extra: ssl
+Provides-Extra: xcgi
Provides-Extra: docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/PKG-INFO new/CherryPy-18.3.0/PKG-INFO
--- old/CherryPy-18.2.0/PKG-INFO 2019-09-04 03:49:16.000000000 +0200
+++ new/CherryPy-18.3.0/PKG-INFO 2019-10-03 02:02:24.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: CherryPy
-Version: 18.2.0
+Version: 18.3.0
Summary: Object-Oriented HTTP framework
Home-page: https://www.cherrypy.org
Author: CherryPy Team
@@ -140,10 +140,10 @@
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Server
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.5
+Provides-Extra: ssl
Provides-Extra: routes_dispatcher
+Provides-Extra: testing
Provides-Extra: json
-Provides-Extra: xcgi
Provides-Extra: memcached_session
-Provides-Extra: testing
-Provides-Extra: ssl
+Provides-Extra: xcgi
Provides-Extra: docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/cherrypy/_cprequest.py new/CherryPy-18.3.0/cherrypy/_cprequest.py
--- old/CherryPy-18.2.0/cherrypy/_cprequest.py 2019-09-04 03:48:54.000000000 +0200
+++ new/CherryPy-18.3.0/cherrypy/_cprequest.py 2019-10-03 02:02:02.000000000 +0200
@@ -1,5 +1,7 @@
import sys
import time
+import collections
+import operator
from http.cookies import SimpleCookie, CookieError
import uuid
@@ -90,28 +92,36 @@
def run(self, point):
"""Execute all registered Hooks (callbacks) for the given point."""
- exc = None
- hooks = self[point]
- hooks.sort()
+ self.run_hooks(iter(sorted(self[point])))
+
+ @classmethod
+ def run_hooks(cls, hooks):
+ """Execute the indicated hooks, trapping errors.
+
+ Hooks with ``.failsafe == True`` are guaranteed to run
+ even if others at the same hookpoint fail. In this case,
+ log the failure and proceed on to the next hook. The only
+ way to stop all processing from one of these hooks is
+ to raise a BaseException like SystemExit or
+ KeyboardInterrupt and stop the whole server.
+ """
+ assert isinstance(hooks, collections.abc.Iterator)
+ quiet_errors = (
+ cherrypy.HTTPError,
+ cherrypy.HTTPRedirect,
+ cherrypy.InternalRedirect,
+ )
+ safe = filter(operator.attrgetter('failsafe'), hooks)
for hook in hooks:
- # Some hooks are guaranteed to run even if others at
- # the same hookpoint fail. We will still log the failure,
- # but proceed on to the next hook. The only way
- # to stop all processing from one of these hooks is
- # to raise SystemExit and stop the whole server.
- if exc is None or hook.failsafe:
- try:
- hook()
- except (KeyboardInterrupt, SystemExit):
- raise
- except (cherrypy.HTTPError, cherrypy.HTTPRedirect,
- cherrypy.InternalRedirect):
- exc = sys.exc_info()[1]
- except Exception:
- exc = sys.exc_info()[1]
- cherrypy.log(traceback=True, severity=40)
- if exc:
- raise exc
+ try:
+ hook()
+ except quiet_errors:
+ cls.run_hooks(safe)
+ raise
+ except Exception:
+ cherrypy.log(traceback=True, severity=40)
+ cls.run_hooks(safe)
+ raise
def __copy__(self):
newmap = self.__class__()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/cherrypy/test/test_static.py new/CherryPy-18.3.0/cherrypy/test/test_static.py
--- old/CherryPy-18.2.0/cherrypy/test/test_static.py 2019-09-04 03:48:54.000000000 +0200
+++ new/CherryPy-18.3.0/cherrypy/test/test_static.py 2019-10-03 02:02:02.000000000 +0200
@@ -2,9 +2,11 @@
import io
import os
import sys
+import re
import platform
import tempfile
import urllib.parse
+import unittest.mock
from http.client import HTTPConnection
import pytest
@@ -397,6 +399,11 @@
self.assertStatus(404)
self.assertInBody("I couldn't find that thing")
+ @unittest.mock.patch(
+ 'http.client._contains_disallowed_url_pchar_re',
+ re.compile(r'[\n]'),
+ create=True,
+ )
def test_null_bytes(self):
self.getPage('/static/\x00')
self.assertStatus('404 Not Found')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/pytest.ini new/CherryPy-18.3.0/pytest.ini
--- old/CherryPy-18.2.0/pytest.ini 2019-09-04 03:48:54.000000000 +0200
+++ new/CherryPy-18.3.0/pytest.ini 2019-10-03 02:02:02.000000000 +0200
@@ -7,6 +7,9 @@
ignore:This method will be removed in future versions.*:DeprecationWarning
ignore:Unable to verify that the server is bound on:UserWarning
ignore:Not importing directory .*.tox/py35/lib/python3.5/site-packages/(zc|repoze).* missing __init__:ImportWarning
+ # ref: https://github.com/mhammond/pywin32/issues/1256#issuecomment-527972824 :
+ ignore:the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses:DeprecationWarning
+ ignore:the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses:PendingDeprecationWarning
doctest_optionflags = ALLOW_UNICODE ELLIPSIS
junit_duration_report = call
junit_suite_name = cherrypy_test_suite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CherryPy-18.2.0/tox.ini new/CherryPy-18.3.0/tox.ini
--- old/CherryPy-18.2.0/tox.ini 2019-09-04 03:48:54.000000000 +0200
+++ new/CherryPy-18.3.0/tox.ini 2019-10-03 02:02:02.000000000 +0200
@@ -9,6 +9,8 @@
install_command =
python -c 'import subprocess, sys; pip_inst_cmd = sys.executable, "-m", "pip", "install"; subprocess.check_call(pip_inst_cmd + ("pip<19.1", )); subprocess.check_call(pip_inst_cmd + tuple(sys.argv[1:]))' {opts} {packages}
usedevelop = True
+commands_pre =
+ pip install -U setuptools
commands =
pytest {posargs}
codecov -f coverage.xml -X gcov