Hello community,

here is the log from the commit of package python3-kombu for openSUSE:Factory 
checked in at 2017-03-03 17:46:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-kombu (Old)
 and      /work/SRC/openSUSE:Factory/.python3-kombu.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-kombu"

Fri Mar  3 17:46:33 2017 rev:17 rq:461379 version:4.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-kombu/python3-kombu.changes      
2016-11-28 15:10:32.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python3-kombu.new/python3-kombu.changes 
2017-03-03 17:46:34.647811339 +0100
@@ -1,0 +2,18 @@
+Wed Mar  1 15:48:17 UTC 2017 - [email protected]
+
+- Update to 4.0.2
+  - Now depends on :mod:`amqp` 2.1.4
+  - Redis: Priority was reversed so, e.g. priority 0 became priority 9.
+- Update to 4.0.1
+  - Now depends on :mod:`amqp` 2.1.3
+  - Producer: Fixed performance degradation when default exchange specified
+  - QPid: Switch to using getattr in qpid.Transport.__del__ (Issue #658)
+  - QPid: Now uses monotonic time for timeouts.
+  - MongoDB: Fixed compatibility with Python 3 (Issue #661).
+  - Consumer: ``__exit__`` now skips cancelling consumer if connection-related
+    error raised (Issue #670).
+  - MongoDB: Removes use of natural sort (Issue #638).
+  - Fixed wrong keyword argument ``channel`` error (Issue #652).
+  - Safe argument to ``urllib.quote`` must be bytes on Python 2.x (Issue #645).
+
+-------------------------------------------------------------------

Old:
----
  kombu-4.0.0.tar.gz

New:
----
  kombu-4.0.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-kombu.spec ++++++
--- /var/tmp/diff_new_pack.KX6gEv/_old  2017-03-03 17:46:35.807647428 +0100
+++ /var/tmp/diff_new_pack.KX6gEv/_new  2017-03-03 17:46:35.811646862 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python3-kombu
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
 
 
 Name:           python3-kombu
-Version:        4.0.0
+Version:        4.0.2
 Release:        0
 Summary:        AMQP Messaging Framework for Python
 License:        BSD-3-Clause
 Group:          Development/Languages/Python
 Url:            http://github.com/celery/kombu/
 Source:         
https://files.pythonhosted.org/packages/source/k/kombu/kombu-%{version}.tar.gz
-BuildRequires:  python3-amqp >= 2.0
+BuildRequires:  python3-amqp >= 2.1.4
 BuildRequires:  python3-amqplib
 BuildRequires:  python3-devel
 BuildRequires:  python3-pycurl
@@ -40,7 +40,7 @@
 # BuildRequires:  python3-mock
 # BuildRequires:  python3-nose-cover3
 # BuildRequires:  python3-unittest2 >= 0.5.0
-Requires:       python3-amqp >= 1.0.13
+Requires:       python3-amqp >= 2.1.4
 Requires:       python3-pycurl
 Requires:       python3-simplejson
 Recommends:     couchdb
@@ -66,8 +66,7 @@
 # For rpmlint warning: remove shebang from python library:
 sed -i '/^#!/d' ./t/unit/test_serialization.py
 # TODO(saschpe): Stop dropping this test once upstream finalized Py3K support:
-rm t/unit/transport/test_filesystem.py t/unit/utils/test_encoding.py
-2to3 -wvn .
+# rm t/unit/transport/test_filesystem.py t/unit/utils/test_encoding.py
 
 %build
 python3 setup.py build
@@ -76,8 +75,8 @@
 python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
 
 # Tests are currently incompatible with latest amqp.  Check in next release.
-#%check
-#python3 setup.py test
+# %check
+# python3 setup.py test
 
 %files
 %defattr(-,root,root,-)

++++++ kombu-4.0.0.tar.gz -> kombu-4.0.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/Changelog new/kombu-4.0.2/Changelog
--- old/kombu-4.0.0/Changelog   2016-10-29 01:44:11.000000000 +0200
+++ new/kombu-4.0.2/Changelog   2016-12-16 00:33:36.000000000 +0100
@@ -4,6 +4,62 @@
  Change history
 ================
 
+.. _version-4.0.2:
+
+4.0.2
+=====
+:release-date: 2016-12-15 03:31 P.M PST
+:release-by: Ask Solem
+
+- Now depends on :mod:`amqp` 2.1.4
+
+    This new version takes advantage of TCP Keepalive settings on Linux,
+    making it better at detecting closed connections, also in failover
+    conditions.
+
+- Redis: Priority was reversed so, e.g. priority 0 became priority 9.
+
+.. _version-4.0.1:
+
+4.0.1
+=====
+:release-date: 2016-12-07 06:00 P.M PST
+:release-by: Ask Solem
+
+- Now depends on :mod:`amqp` 2.1.3
+
+    This new version takes advantage of the new ``TCP_USER_TIMEOUT`` socket 
option
+    on Linux.
+
+- Producer: Fixed performance degradation when default exchange specified
+  (Issue #651).
+
+- QPid: Switch to using getattr in qpid.Transport.__del__ (Issue #658)
+
+    Contributed by **Patrick Creech**.
+
+- QPid: Now uses monotonic time for timeouts.
+
+- MongoDB: Fixed compatibility with Python 3 (Issue #661).
+
+- Consumer: ``__exit__`` now skips cancelling consumer if connection-related
+  error raised (Issue #670).
+
+- MongoDB: Removes use of natural sort (Issue #638).
+
+    Contributed by **Anton Chaporgin**.
+
+- Fixed wrong keyword argument ``channel`` error (Issue #652).
+
+    Contributed by **Toomore Chiang**.
+
+- Safe argument to ``urllib.quote`` must be bytes on Python 2.x (Issue #645).
+
+- Documentation improvments by:
+
+    - **Carlos Edo**
+    - **Cemre Mengu**
+
 .. _version-4.0:
 
 4.0
@@ -121,7 +177,7 @@
     - ``Queue(max_priority=10)``
 
         Declare queue to be a priority queue that routes messages
-        based on the ``priority` field of the message.
+        based on the ``priority`` field of the message.
 
         See :attr:`kombu.Queue.max_priority`.
 
@@ -152,7 +208,12 @@
 
   .. code-block:: python
 
-        consumer = Consumer(channel, consumer_arguments={'x-priority': 3})
+        Queue(
+            'qname',
+            exchange=Exchange('exchange'),
+            routing_key='qname',
+            consumer_arguments={'x-priority': 3},
+        )
 
 - Queue/Exchange: ``no_declare`` option added (also enabled for
   internal amq. exchanges) (Issue #565).
@@ -306,6 +367,38 @@
 
     ``detect_environment`` has been moved to kombu.utils.compat
 
+.. _version-3.0.37:
+
+3.0.37
+======
+:release-date: 2016-10-06 05:00 P.M PDT
+:release-by: Ask Solem
+
+- Connection: Return value of ``.info()`` was no longer JSON serializable,
+  leading to "itertools.cycle object not JSON serializable"
+  errors (Issue #635).
+
+.. _version-3.0.36:
+
+3.0.36
+======
+:release-date: 2016-09-30 03:06 P.M PDT
+:release-by: Ask Solem
+
+- Connection: Fixed bug when cloning connection with alternate urls.
+
+    Fix contributed by Emmanuel Cazenave.
+
+- Redis: Fixed problem with unix socket connections.
+
+    https://github.com/celery/celery/issues/2903
+
+    Fix contributed by Raphael Michel.
+
+- Redis: Fixed compatibility with older redis-py versions (Issue #576).
+
+- Broadcast now retains queue name when being copied/pickled (Issue #578).
+
 .. _version-3.0.35:
 
 3.0.35
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/PKG-INFO new/kombu-4.0.2/PKG-INFO
--- old/kombu-4.0.0/PKG-INFO    2016-10-29 01:53:59.000000000 +0200
+++ new/kombu-4.0.2/PKG-INFO    2016-12-16 00:49:32.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: kombu
-Version: 4.0.0
+Version: 4.0.2
 Summary: Messaging library for Python.
 Home-page: https://kombu.readthedocs.io
 Author: Ask Solem
@@ -12,7 +12,7 @@
         
         |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
         
-        :Version: 4.0.0
+        :Version: 4.0.2
         :Web: http://kombu.me/
         :Download: http://pypi.python.org/pypi/kombu/
         :Source: https://github.com/celery/kombu/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/README.rst new/kombu-4.0.2/README.rst
--- old/kombu-4.0.0/README.rst  2016-10-29 01:53:42.000000000 +0200
+++ new/kombu-4.0.2/README.rst  2016-12-16 00:33:36.000000000 +0100
@@ -4,7 +4,7 @@
 
 |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
 
-:Version: 4.0.0
+:Version: 4.0.2
 :Web: http://kombu.me/
 :Download: http://pypi.python.org/pypi/kombu/
 :Source: https://github.com/celery/kombu/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/docs/includes/introduction.txt 
new/kombu-4.0.2/docs/includes/introduction.txt
--- old/kombu-4.0.0/docs/includes/introduction.txt      2016-10-29 
00:50:58.000000000 +0200
+++ new/kombu-4.0.2/docs/includes/introduction.txt      2016-12-16 
00:33:36.000000000 +0100
@@ -1,4 +1,4 @@
-:Version: 4.0.0
+:Version: 4.0.2
 :Web: http://kombu.me/
 :Download: http://pypi.python.org/pypi/kombu/
 :Source: https://github.com/celery/kombu/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/docs/userguide/consumers.rst 
new/kombu-4.0.2/docs/userguide/consumers.rst
--- old/kombu-4.0.0/docs/userguide/consumers.rst        2016-10-27 
02:51:26.000000000 +0200
+++ new/kombu-4.0.2/docs/userguide/consumers.rst        2016-12-16 
00:33:36.000000000 +0100
@@ -18,7 +18,7 @@
 
     Kombu since 3.0 will only accept json/binary or text messages by default,
     to allow deserialization of other formats you have to specify them
-    in the ``accept`` argument:
+    in the ``accept`` argument (in addition to setting the right content type 
for your messages):
 
     .. code-block:: python
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/examples/rpc-tut6/rpc_client.py 
new/kombu-4.0.2/examples/rpc-tut6/rpc_client.py
--- old/kombu-4.0.0/examples/rpc-tut6/rpc_client.py     2016-10-24 
21:43:09.000000000 +0200
+++ new/kombu-4.0.2/examples/rpc-tut6/rpc_client.py     2016-12-16 
00:33:36.000000000 +0100
@@ -23,7 +23,7 @@
                 exchange='',
                 routing_key='rpc_queue',
                 declare=[self.callback_queue],
-                reply_to=self.callback_queue,
+                reply_to=self.callback_queue.name,
                 correlation_id=self.correlation_id,
             )
         with Consumer(self.connection,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/extra/requirements/default.txt 
new/kombu-4.0.2/extra/requirements/default.txt
--- old/kombu-4.0.0/extra/requirements/default.txt      2016-10-24 
21:43:09.000000000 +0200
+++ new/kombu-4.0.2/extra/requirements/default.txt      2016-12-16 
00:33:36.000000000 +0100
@@ -1 +1 @@
-amqp>=2.1.1,<3.0
+amqp>=2.1.4,<3.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/__init__.py 
new/kombu-4.0.2/kombu/__init__.py
--- old/kombu-4.0.0/kombu/__init__.py   2016-10-29 01:53:39.000000000 +0200
+++ new/kombu-4.0.2/kombu/__init__.py   2016-12-16 00:33:36.000000000 +0100
@@ -10,7 +10,7 @@
 
 from collections import namedtuple  # noqa
 
-__version__ = '4.0.0'
+__version__ = '4.0.2'
 __author__ = 'Ask Solem'
 __contact__ = '[email protected]'
 __homepage__ = 'https://kombu.readthedocs.io'
@@ -92,6 +92,7 @@
                        '__contact__', '__homepage__', '__docformat__'))
         return result
 
+
 # 2.5 does not define __package__
 try:
     package = __package__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/async/http/curl.py 
new/kombu-4.0.2/kombu/async/http/curl.py
--- old/kombu-4.0.0/kombu/async/http/curl.py    2016-10-24 21:43:09.000000000 
+0200
+++ new/kombu-4.0.2/kombu/async/http/curl.py    2016-12-16 00:33:36.000000000 
+0100
@@ -178,8 +178,8 @@
                 buffer=buffer, effective_url=effective_url, error=error,
             ))
         except Exception as exc:
-            raise
             self.hub.on_callback_error(request.on_ready, exc)
+            raise
 
     def _setup_request(self, curl, request, buffer, headers, _pycurl=pycurl):
         setopt = curl.setopt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/connection.py 
new/kombu-4.0.2/kombu/connection.py
--- old/kombu-4.0.0/kombu/connection.py 2016-10-24 21:43:09.000000000 +0200
+++ new/kombu-4.0.2/kombu/connection.py 2016-12-16 00:33:36.000000000 +0100
@@ -891,7 +891,7 @@
     @property
     def is_evented(self):
         return self.transport.implements.async
-BrokerConnection = Connection
+BrokerConnection = Connection  # noqa: E305
 
 
 class ConnectionPool(Resource):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/messaging.py 
new/kombu-4.0.2/kombu/messaging.py
--- old/kombu-4.0.0/kombu/messaging.py  2016-10-27 22:06:14.000000000 +0200
+++ new/kombu-4.0.2/kombu/messaging.py  2016-12-16 00:33:36.000000000 +0100
@@ -118,7 +118,8 @@
                 mandatory=False, immediate=False, priority=0,
                 content_type=None, content_encoding=None, serializer=None,
                 headers=None, compression=None, exchange=None, retry=False,
-                retry_policy=None, declare=[], expiration=None, **properties):
+                retry_policy=None, declare=None, expiration=None,
+                **properties):
         """Publish message to the specified exchange.
 
         Arguments:
@@ -150,6 +151,7 @@
         """
         _publish = self._publish
 
+        declare = [] if declare is None else declare
         headers = {} if headers is None else headers
         retry_policy = {} if retry_policy is None else retry_policy
         routing_key = self.routing_key if routing_key is None else routing_key
@@ -167,8 +169,9 @@
             compression, headers)
 
         if self.auto_declare and self.exchange.name:
-            declare = [] if declare is None else declare
-            declare.append(self.exchange)
+            if self.exchange not in declare:
+                # XXX declare should be a Set.
+                declare.append(self.exchange)
 
         if retry:
             _publish = self.connection.ensure(self, _publish, **retry_policy)
@@ -430,11 +433,14 @@
         self.consume()
         return self
 
-    def __exit__(self, *exc_info):
-        try:
-            self.cancel()
-        except Exception:
-            pass
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        if self.channel:
+            conn_errors = self.channel.connection.client.connection_errors
+            if not isinstance(exc_val, conn_errors):
+                try:
+                    self.cancel()
+                except Exception:
+                    pass
 
     def add_queue(self, queue):
         """Add a queue to the list of queues to consume from.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/pools.py 
new/kombu-4.0.2/kombu/pools.py
--- old/kombu-4.0.0/kombu/pools.py      2016-10-24 21:43:09.000000000 +0200
+++ new/kombu-4.0.2/kombu/pools.py      2016-12-16 00:33:36.000000000 +0100
@@ -107,7 +107,7 @@
 
     def create(self, connection, limit):
         return connection.Pool(limit=limit)
-connections = register_group(Connections(limit=use_global_limit))
+connections = register_group(Connections(limit=use_global_limit))  # noqa: E305
 
 
 class Producers(PoolGroup):
@@ -115,7 +115,7 @@
 
     def create(self, connection, limit):
         return ProducerPool(connections[connection], limit=limit)
-producers = register_group(Producers(limit=use_global_limit))
+producers = register_group(Producers(limit=use_global_limit))  # noqa: E305
 
 
 def _all_pools():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/serialization.py 
new/kombu-4.0.2/kombu/serialization.py
--- old/kombu-4.0.0/kombu/serialization.py      2016-10-28 01:17:44.000000000 
+0200
+++ new/kombu-4.0.2/kombu/serialization.py      2016-12-16 00:33:36.000000000 
+0100
@@ -388,6 +388,7 @@
         content_encoding='binary',
     )
 
+
 # Register the base serialization methods.
 register_json()
 register_pickle()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/transport/SQS.py 
new/kombu-4.0.2/kombu/transport/SQS.py
--- old/kombu-4.0.0/kombu/transport/SQS.py      2016-10-24 21:43:09.000000000 
+0200
+++ new/kombu-4.0.2/kombu/transport/SQS.py      2016-12-16 00:33:36.000000000 
+0100
@@ -14,7 +14,7 @@
 
     Long polling is enabled by setting the `wait_time_seconds` transport
     option to a number > 1.  Amazon supports up to 20 seconds.  This is
-    disabled for now, but will be enabled by default in the near future.
+    enabled with 10 seconds by default.
 
   Batch API Actions:
    http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/
@@ -83,7 +83,7 @@
 
     default_region = 'us-east-1'
     default_visibility_timeout = 1800  # 30 minutes.
-    default_wait_time_seconds = 10  # disabled see #198
+    default_wait_time_seconds = 10  # up to 20 seconds max
     domain_format = 'kombu%(vhost)s'
     _asynsqs = None
     _sqs = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/transport/librabbitmq.py 
new/kombu-4.0.2/kombu/transport/librabbitmq.py
--- old/kombu-4.0.0/kombu/transport/librabbitmq.py      2016-10-24 
21:43:09.000000000 +0200
+++ new/kombu-4.0.2/kombu/transport/librabbitmq.py      2016-12-16 
00:33:36.000000000 +0100
@@ -35,7 +35,7 @@
 
     def __init__(self, channel, props, info, body):
         super(Message, self).__init__(
-            channel,
+            channel=channel,
             body=body,
             delivery_info=info,
             properties=props,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/transport/mongodb.py 
new/kombu-4.0.2/kombu/transport/mongodb.py
--- old/kombu-4.0.0/kombu/transport/mongodb.py  2016-10-24 21:43:09.000000000 
+0200
+++ new/kombu-4.0.2/kombu/transport/mongodb.py  2016-12-16 00:33:36.000000000 
+0100
@@ -13,7 +13,7 @@
 from pymongo.cursor import CursorType
 
 from kombu.exceptions import VersionMismatch
-from kombu.five import Empty
+from kombu.five import Empty, string_t
 from kombu.utils.compat import _detect_environment
 from kombu.utils.encoding import bytes_to_str
 from kombu.utils.json import loads, dumps
@@ -137,8 +137,7 @@
         else:
             msg = self.messages.find_and_modify(
                 query={'queue': queue},
-                sort=[('priority', pymongo.ASCENDING),
-                      ('$natural', pymongo.ASCENDING)],
+                sort=[('priority', pymongo.ASCENDING)],
                 remove=True,
             )
 
@@ -381,13 +380,11 @@
         if pymongo.version_tuple >= (3, ):
             query = dict(
                 filter={'queue': exchange},
-                sort=[('$natural', pymongo.ASCENDING)],
                 cursor_type=CursorType.TAILABLE
             )
         else:
             query = dict(
                 query={'queue': exchange},
-                sort=[('$natural', pymongo.ASCENDING)],
                 tailable=True
             )
 
@@ -401,7 +398,7 @@
         Note:
             `queue` must be either queue name or options itself.
         """
-        if isinstance(queue, basestring):
+        if isinstance(queue, string_t):
             doc = self.queues.find_one({'_id': queue})
 
             if not doc:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/transport/qpid.py 
new/kombu-4.0.2/kombu/transport/qpid.py
--- old/kombu-4.0.0/kombu/transport/qpid.py     2016-10-28 01:32:25.000000000 
+0200
+++ new/kombu-4.0.2/kombu/transport/qpid.py     2016-12-16 00:33:36.000000000 
+0100
@@ -84,7 +84,6 @@
 import socket
 import ssl
 import sys
-import time
 import uuid
 
 from gettext import gettext as _
@@ -117,7 +116,7 @@
     qpid = None
 
 
-from kombu.five import Empty, items
+from kombu.five import Empty, items, monotonic
 from kombu.log import get_logger
 from kombu.transport.virtual import Base64, Message
 from kombu.transport import base
@@ -1680,7 +1679,7 @@
         :type timeout: int
 
         """
-        start_time = time.time()
+        start_time = monotonic()
         elapsed_time = -1
         while elapsed_time < timeout:
             try:
@@ -1691,7 +1690,7 @@
                 raise socket.timeout()
             else:
                 connection._callbacks[queue](message)
-            elapsed_time = time.time() - start_time
+            elapsed_time = monotonic() - start_time
         raise socket.timeout()
 
     def create_channel(self, connection):
@@ -1731,7 +1730,7 @@
 
     def __del__(self):
         """Ensure file descriptors opened in __init__() are closed."""
-        if self.use_async_interface:
+        if getattr(self, 'use_async_interface', False):
             for fd in (self.r, self._w):
                 try:
                     os.close(fd)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/transport/redis.py 
new/kombu-4.0.2/kombu/transport/redis.py
--- old/kombu-4.0.0/kombu/transport/redis.py    2016-10-24 21:43:09.000000000 
+0200
+++ new/kombu-4.0.2/kombu/transport/redis.py    2016-12-16 00:33:36.000000000 
+0100
@@ -667,8 +667,9 @@
             ret.append(self._receive_one(c))
         except Empty:
             pass
-        while c.connection.can_read(timeout=0):
-            ret.append(self._receive_one(c))
+        if c.connection is not None:
+            while c.connection.can_read(timeout=0):
+                ret.append(self._receive_one(c))
         return any(ret)
 
     def _receive_one(self, c):
@@ -760,7 +761,7 @@
 
     def _put(self, queue, message, **kwargs):
         """Deliver message."""
-        pri = self._get_message_priority(message, reverse=True)
+        pri = self._get_message_priority(message, reverse=False)
 
         with self.conn_or_acquire() as client:
             client.lpush(self._q_for_pri(queue, pri), dumps(message))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/utils/functional.py 
new/kombu-4.0.2/kombu/utils/functional.py
--- old/kombu-4.0.0/kombu/utils/functional.py   2016-10-24 21:43:09.000000000 
+0200
+++ new/kombu-4.0.2/kombu/utils/functional.py   2016-12-16 00:33:36.000000000 
+0100
@@ -358,6 +358,7 @@
         reprkwargs(kwargs, sep),
     )
 
+
 # Compat names (before kombu 3.0)
 promise = lazy
 maybe_promise = maybe_evaluate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/utils/json.py 
new/kombu-4.0.2/kombu/utils/json.py
--- old/kombu-4.0.0/kombu/utils/json.py 2016-10-24 21:43:09.000000000 +0200
+++ new/kombu-4.0.2/kombu/utils/json.py 2016-12-16 00:33:36.000000000 +0100
@@ -60,6 +60,8 @@
             elif isinstance(o, textual):
                 return text_t(o)
             return super(JSONEncoder, self).default(o)
+
+
 _default_encoder = JSONEncoder
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/utils/scheduling.py 
new/kombu-4.0.2/kombu/utils/scheduling.py
--- old/kombu-4.0.0/kombu/utils/scheduling.py   2016-10-28 01:15:53.000000000 
+0200
+++ new/kombu-4.0.2/kombu/utils/scheduling.py   2016-12-16 00:33:36.000000000 
+0100
@@ -50,18 +50,14 @@
 
     def get(self, callback, **kwargs):
         """Get from next resource."""
-        succeeded = 0
         for tried in count(0):  # for infinity
             resource = self._next()
             try:
                 return self.fun(resource, callback, **kwargs)
             except self.predicate:
+                # reraise when retries exchausted.
                 if tried >= len(self.resources) - 1:
-                    if not succeeded:
-                        raise
-                    break
-            else:
-                succeeded += 1
+                    raise
 
     def close(self):
         """Close cycle."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu/utils/url.py 
new/kombu-4.0.2/kombu/utils/url.py
--- old/kombu-4.0.0/kombu/utils/url.py  2016-10-24 21:43:09.000000000 +0200
+++ new/kombu-4.0.2/kombu/utils/url.py  2016-12-16 00:33:36.000000000 +0100
@@ -10,11 +10,11 @@
     from urllib import quote, unquote                  # noqa
     from urlparse import urlparse, parse_qsl    # noqa
 
-from kombu.five import string_t
+from kombu.five import bytes_if_py2, string_t
 
 from .compat import NamedTuple
 
-safequote = partial(quote, safe='')
+safequote = partial(quote, safe=bytes_if_py2(''))
 
 
 urlparts = NamedTuple('urlparts', [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu.egg-info/PKG-INFO 
new/kombu-4.0.2/kombu.egg-info/PKG-INFO
--- old/kombu-4.0.0/kombu.egg-info/PKG-INFO     2016-10-29 01:53:56.000000000 
+0200
+++ new/kombu-4.0.2/kombu.egg-info/PKG-INFO     2016-12-16 00:49:29.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: kombu
-Version: 4.0.0
+Version: 4.0.2
 Summary: Messaging library for Python.
 Home-page: https://kombu.readthedocs.io
 Author: Ask Solem
@@ -12,7 +12,7 @@
         
         |build-status| |coverage| |license| |wheel| |pyversion| |pyimp|
         
-        :Version: 4.0.0
+        :Version: 4.0.2
         :Web: http://kombu.me/
         :Download: http://pypi.python.org/pypi/kombu/
         :Source: https://github.com/celery/kombu/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/kombu.egg-info/requires.txt 
new/kombu-4.0.2/kombu.egg-info/requires.txt
--- old/kombu-4.0.0/kombu.egg-info/requires.txt 2016-10-29 01:53:56.000000000 
+0200
+++ new/kombu-4.0.2/kombu.egg-info/requires.txt 2016-12-16 00:49:29.000000000 
+0100
@@ -1,4 +1,4 @@
-amqp>=2.1.1,<3.0
+amqp>=2.1.4,<3.0
 
 [consul]
 python-consul>=0.6.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/requirements/default.txt 
new/kombu-4.0.2/requirements/default.txt
--- old/kombu-4.0.0/requirements/default.txt    2016-10-24 21:43:09.000000000 
+0200
+++ new/kombu-4.0.2/requirements/default.txt    2016-12-16 00:33:36.000000000 
+0100
@@ -1 +1 @@
-amqp>=2.1.1,<3.0
+amqp>=2.1.4,<3.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/t/unit/test_messaging.py 
new/kombu-4.0.2/t/unit/test_messaging.py
--- old/kombu-4.0.0/t/unit/test_messaging.py    2016-10-27 20:04:47.000000000 
+0200
+++ new/kombu-4.0.2/t/unit/test_messaging.py    2016-12-16 00:33:36.000000000 
+0100
@@ -262,6 +262,15 @@
             pass
         c.cancel.assert_called_with()
 
+    def test_enter_exit_cancel_not_called_on_connection_error(self):
+        c = Consumer(self.connection)
+        c.cancel = Mock(name='Consumer.cancel')
+        assert self.connection.connection_errors
+        with pytest.raises(self.connection.connection_errors[0]):
+            with c:
+                raise self.connection.connection_errors[0]()
+        c.cancel.assert_not_called()
+
     def test_receive_callback_accept(self):
         message = Mock(name='Message')
         message.errors = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/t/unit/transport/test_mongodb.py 
new/kombu-4.0.2/t/unit/transport/test_mongodb.py
--- old/kombu-4.0.0/t/unit/transport/test_mongodb.py    2016-10-24 
21:43:09.000000000 +0200
+++ new/kombu-4.0.2/t/unit/transport/test_mongodb.py    2016-12-16 
00:33:36.000000000 +0100
@@ -160,7 +160,6 @@
             remove=True,
             sort=[
                 ('priority', pymongo.ASCENDING),
-                ('$natural', pymongo.ASCENDING),
             ],
         )
 
@@ -340,7 +339,6 @@
                 'broadcast', 'find',
                 tailable=True,
                 query={'queue': 'fanout_exchange'},
-                sort=[('$natural', pymongo.ASCENDING)],
             )
 
         if pymongo.version_tuple >= (3, ):
@@ -353,7 +351,6 @@
                 'broadcast', 'find',
                 cursor_type=pymongo.CursorType.TAILABLE,
                 filter={'queue': 'fanout_exchange1'},
-                sort=[('$natural', pymongo.ASCENDING)],
             )
 
 
@@ -400,7 +397,6 @@
             remove=True,
             sort=[
                 ('priority', pymongo.ASCENDING),
-                ('$natural', pymongo.ASCENDING),
             ],
         )
         self.assert_operation_called_with(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/t/unit/transport/test_qpid.py 
new/kombu-4.0.2/t/unit/transport/test_qpid.py
--- old/kombu-4.0.0/t/unit/transport/test_qpid.py       2016-10-29 
01:22:29.000000000 +0200
+++ new/kombu-4.0.2/t/unit/transport/test_qpid.py       2016-12-16 
00:33:36.000000000 +0100
@@ -311,7 +311,7 @@
         except AuthenticationFailure as error:
             exc_info = sys.exc_info()
             assert not isinstance(error, QpidException)
-            assert exc_info[1] is 'b'
+            assert exc_info[1] == 'b'
             assert exc_info[2] is None
         else:
             self.fail('ConnectionError type was not mutated correctly')
@@ -328,7 +328,7 @@
         except AuthenticationFailure as error:
             exc_info = sys.exc_info()
             assert not isinstance(error, QpidException)
-            assert exc_info[1] is 'b'
+            assert exc_info[1] == 'b'
             assert exc_info[2] is None
         else:
             self.fail('ConnectionError type was not mutated correctly')
@@ -355,7 +355,7 @@
         except AuthenticationFailure as error:
             exc_info = sys.exc_info()
             assert not isinstance(error, QpidException)
-            assert exc_info[1] is 'b'
+            assert exc_info[1] == 'b'
             assert exc_info[2] is None
         else:
             self.fail('ConnectionError type was not mutated correctly')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/t/unit/transport/test_redis.py 
new/kombu-4.0.2/t/unit/transport/test_redis.py
--- old/kombu-4.0.0/t/unit/transport/test_redis.py      2016-10-24 
21:43:09.000000000 +0200
+++ new/kombu-4.0.2/t/unit/transport/test_redis.py      2016-12-16 
00:33:36.000000000 +0100
@@ -573,19 +573,19 @@
 
         self.channel._put('george', msg1)
         client().lpush.assert_called_with(
-            self.channel._q_for_pri('george', 6), dumps(msg1),
+            self.channel._q_for_pri('george', 3), dumps(msg1),
         )
 
         msg2 = {'properties': {'priority': 313}}
         self.channel._put('george', msg2)
         client().lpush.assert_called_with(
-            self.channel._q_for_pri('george', 0), dumps(msg2),
+            self.channel._q_for_pri('george', 9), dumps(msg2),
         )
 
         msg3 = {'properties': {}}
         self.channel._put('george', msg3)
         client().lpush.assert_called_with(
-            self.channel._q_for_pri('george', 9), dumps(msg3),
+            self.channel._q_for_pri('george', 0), dumps(msg3),
         )
 
     def test_delete(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kombu-4.0.0/t/unit/transport/virtual/test_base.py 
new/kombu-4.0.2/t/unit/transport/virtual/test_base.py
--- old/kombu-4.0.0/t/unit/transport/virtual/test_base.py       2016-10-28 
01:50:56.000000000 +0200
+++ new/kombu-4.0.2/t/unit/transport/virtual/test_base.py       2016-12-16 
00:33:36.000000000 +0100
@@ -506,9 +506,9 @@
         c = self.channel
         c.exchange_declare(exchange='unique_name')
         c.queue_declare(queue='q')
-        c.queue_bind(queue='q', exchange='foo', routing_key='rk')
+        c.queue_bind(queue='q', exchange='unique_name', routing_key='rk')
 
-        assert ('q', 'foo', 'rk') in list(c.list_bindings())
+        assert ('q', 'unique_name', 'rk') in list(c.list_bindings())
 
     def test_after_reply_message_received(self):
         c = self.channel


Reply via email to