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 <[email protected]>
+
+- Skip known failing test upstream
+
+-------------------------------------------------------------------
+Fri Oct 11 07:43:34 UTC 2019 - Tomáš Chvátal <[email protected]>
+
+- 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 <[email protected]>
+
+- 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


Reply via email to