Hello community,

here is the log from the commit of package python-pymemcache for 
openSUSE:Factory checked in at 2020-03-26 23:34:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymemcache (Old)
 and      /work/SRC/openSUSE:Factory/.python-pymemcache.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pymemcache"

Thu Mar 26 23:34:34 2020 rev:6 rq:788526 version:3.0.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymemcache/python-pymemcache.changes      
2020-03-21 00:03:03.853154029 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-pymemcache.new.3160/python-pymemcache.changes
    2020-03-26 23:35:12.850817071 +0100
@@ -1,0 +2,8 @@
+Mon Mar 23 14:54:06 UTC 2020 - pgaj...@suse.com
+
+- version update to 3.0.1
+  * Make MockMemcacheClient more consistent with the real client.
+  * Pass ``encoding`` from HashClient to its pooled clients when 
``use_pooling``
+    is enabled.
+
+-------------------------------------------------------------------

Old:
----
  pymemcache-3.0.0.tar.gz

New:
----
  pymemcache-3.0.1.tar.gz

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

Other differences:
------------------
++++++ python-pymemcache.spec ++++++
--- /var/tmp/diff_new_pack.BtCqG1/_old  2020-03-26 23:35:13.334817246 +0100
+++ /var/tmp/diff_new_pack.BtCqG1/_new  2020-03-26 23:35:13.334817246 +0100
@@ -19,7 +19,7 @@
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-pymemcache
-Version:        3.0.0
+Version:        3.0.1
 Release:        0
 Summary:        A pure Python memcached client
 License:        Apache-2.0

++++++ pymemcache-3.0.0.tar.gz -> pymemcache-3.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/ChangeLog.rst 
new/pymemcache-3.0.1/ChangeLog.rst
--- old/pymemcache-3.0.0/ChangeLog.rst  2020-01-02 22:34:43.000000000 +0100
+++ new/pymemcache-3.0.1/ChangeLog.rst  2020-03-20 18:05:35.000000000 +0100
@@ -1,6 +1,12 @@
 Changelog
 =========
 
+New in version 3.0.1
+--------------------
+* Make MockMemcacheClient more consistent with the real client.
+* Pass ``encoding`` from HashClient to its pooled clients when ``use_pooling``
+  is enabled.
+
 New in version 3.0.0
 --------------------
 * The serialization API has been reworked. Instead of consuming a serializer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/PKG-INFO 
new/pymemcache-3.0.1/PKG-INFO
--- old/pymemcache-3.0.0/PKG-INFO       2020-01-02 22:43:14.000000000 +0100
+++ new/pymemcache-3.0.1/PKG-INFO       2020-03-20 18:06:20.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pymemcache
-Version: 3.0.0
+Version: 3.0.1
 Summary: "A comprehensive, fast, pure Python memcached client"
 Home-page: https://github.com/pinterest/pymemcache
 Author: Charles Gordon
@@ -132,6 +132,7 @@
         * `Joe Gordon <https://github.com/jogo>`_
         * `Jon Parise <https://github.com/jparise>`_
         * `Stephen Rosen <https://github.com/sirosen>`_
+        * `Feras Alazzeh <https://github.com/FerasAlazzeh>`_
         
         We're Hiring!
         =============
@@ -141,6 +142,12 @@
         Changelog
         =========
         
+        New in version 3.0.1
+        --------------------
+        * Make MockMemcacheClient more consistent with the real client.
+        * Pass ``encoding`` from HashClient to its pooled clients when 
``use_pooling``
+          is enabled.
+        
         New in version 3.0.0
         --------------------
         * The serialization API has been reworked. Instead of consuming a 
serializer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/README.rst 
new/pymemcache-3.0.1/README.rst
--- old/pymemcache-3.0.0/README.rst     2019-11-25 17:37:00.000000000 +0100
+++ new/pymemcache-3.0.1/README.rst     2020-01-15 23:00:22.000000000 +0100
@@ -124,6 +124,7 @@
 * `Joe Gordon <https://github.com/jogo>`_
 * `Jon Parise <https://github.com/jparise>`_
 * `Stephen Rosen <https://github.com/sirosen>`_
+* `Feras Alazzeh <https://github.com/FerasAlazzeh>`_
 
 We're Hiring!
 =============
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/__init__.py 
new/pymemcache-3.0.1/pymemcache/__init__.py
--- old/pymemcache-3.0.0/pymemcache/__init__.py 2020-01-02 22:33:26.000000000 
+0100
+++ new/pymemcache-3.0.1/pymemcache/__init__.py 2020-03-20 18:05:35.000000000 
+0100
@@ -1,4 +1,4 @@
-__version__ = '3.0.0'
+__version__ = '3.0.1'
 
 from pymemcache.client.base import Client  # noqa
 from pymemcache.client.base import PooledClient  # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/client/base.py 
new/pymemcache-3.0.1/pymemcache/client/base.py
--- old/pymemcache-3.0.0/pymemcache/client/base.py      2019-09-11 
02:03:41.000000000 +0200
+++ new/pymemcache-3.0.1/pymemcache/client/base.py      2020-03-20 
16:29:34.000000000 +0100
@@ -82,7 +82,7 @@
 # Common helper functions.
 
 
-def _check_key(key, allow_unicode_keys, key_prefix=b''):
+def check_key_helper(key, allow_unicode_keys, key_prefix=b''):
     """Checks key and add key_prefix."""
     if allow_unicode_keys:
         if isinstance(key, six.text_type):
@@ -272,8 +272,8 @@
 
     def check_key(self, key):
         """Checks key and add key_prefix."""
-        return _check_key(key, allow_unicode_keys=self.allow_unicode_keys,
-                          key_prefix=self.key_prefix)
+        return check_key_helper(key, 
allow_unicode_keys=self.allow_unicode_keys,
+                                key_prefix=self.key_prefix)
 
     def _connect(self):
         self.close()
@@ -1040,8 +1040,8 @@
 
     def check_key(self, key):
         """Checks key and add key_prefix."""
-        return _check_key(key, allow_unicode_keys=self.allow_unicode_keys,
-                          key_prefix=self.key_prefix)
+        return check_key_helper(key, 
allow_unicode_keys=self.allow_unicode_keys,
+                                key_prefix=self.key_prefix)
 
     def _create_client(self):
         client = Client(self.server,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/client/hash.py 
new/pymemcache-3.0.1/pymemcache/client/hash.py
--- old/pymemcache-3.0.0/pymemcache/client/hash.py      2020-01-02 
22:28:28.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache/client/hash.py      2020-03-20 
16:29:34.000000000 +0100
@@ -3,7 +3,7 @@
 import logging
 import six
 
-from pymemcache.client.base import Client, PooledClient, _check_key
+from pymemcache.client.base import Client, PooledClient, check_key_helper
 from pymemcache.client.rendezvous import RendezvousHash
 from pymemcache.exceptions import MemcacheError
 
@@ -87,6 +87,7 @@
             'deserializer': deserializer,
             'allow_unicode_keys': allow_unicode_keys,
             'default_noreply': default_noreply,
+            'encoding': encoding
         }
 
         if use_pooling is True:
@@ -121,7 +122,7 @@
         self.hasher.remove_node(key)
 
     def _get_client(self, key):
-        _check_key(key, self.allow_unicode_keys, self.key_prefix)
+        check_key_helper(key, self.allow_unicode_keys, self.key_prefix)
         if len(self._dead_clients) > 0:
             current_time = time.time()
             ldc = self._last_dead_check_time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/test/test_client.py 
new/pymemcache-3.0.1/pymemcache/test/test_client.py
--- old/pymemcache-3.0.0/pymemcache/test/test_client.py 2019-09-03 
20:54:27.000000000 +0200
+++ new/pymemcache-3.0.1/pymemcache/test/test_client.py 2020-03-20 
16:29:34.000000000 +0100
@@ -296,6 +296,14 @@
         result = client.get(b'key')
         assert result is None
 
+    def test_space_key(self):
+        client = self.make_client([b''])
+        with pytest.raises(MemcacheIllegalInputError):
+            client.get(b'space key')
+
+        with pytest.raises(MemcacheIllegalInputError):
+            client.set(b'space key', b'value')
+
     def test_get_not_found_default(self):
         client = self.make_client([b'END\r\n'])
         result = client.get(b'key', default='foobar')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/test/test_client_hash.py 
new/pymemcache-3.0.1/pymemcache/test/test_client_hash.py
--- old/pymemcache-3.0.0/pymemcache/test/test_client_hash.py    2020-01-02 
22:28:28.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache/test/test_client_hash.py    2020-03-20 
16:29:34.000000000 +0100
@@ -268,4 +268,31 @@
         result = client.set_many(values, noreply=True)
         assert result == []
 
+    def test_server_encoding_pooled(self):
+        """
+        test passed encoding from hash client to pooled clients
+        """
+        encoding = 'utf8'
+        from pymemcache.client.hash import HashClient
+        hash_client = HashClient(
+            [('example.com', 11211)], use_pooling=True,
+            encoding=encoding
+        )
+
+        for client in hash_client.clients.values():
+            assert client.encoding == encoding
+
+    def test_server_encoding_client(self):
+        """
+        test passed encoding from hash client to clients
+        """
+        encoding = 'utf8'
+        from pymemcache.client.hash import HashClient
+        hash_client = HashClient(
+            [('example.com', 11211)], encoding=encoding
+        )
+
+        for client in hash_client.clients.values():
+            assert client.encoding == encoding
+
     # TODO: Test failover logic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache/test/utils.py 
new/pymemcache-3.0.1/pymemcache/test/utils.py
--- old/pymemcache-3.0.0/pymemcache/test/utils.py       2019-12-22 
03:35:18.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache/test/utils.py       2020-03-20 
16:29:34.000000000 +0100
@@ -11,6 +11,7 @@
 
 from pymemcache.exceptions import MemcacheIllegalInputError
 from pymemcache.serde import LegacyWrappingSerde
+from pymemcache.client.base import check_key_helper
 
 
 class MockMemcacheClient(object):
@@ -22,6 +23,8 @@
     def __init__(self,
                  server=None,
                  serde=None,
+                 serializer=None,
+                 deserializer=None,
                  connect_timeout=None,
                  timeout=None,
                  no_delay=False,
@@ -32,7 +35,7 @@
 
         self._contents = {}
 
-        self.serde = serde or LegacyWrappingSerde(None, None)
+        self.serde = serde or LegacyWrappingSerde(serializer, deserializer)
         self.allow_unicode_keys = allow_unicode_keys
 
         # Unused, but present for interface compatibility
@@ -43,16 +46,16 @@
         self.ignore_exc = ignore_exc
         self.encoding = encoding
 
+    def check_key(self, key):
+        """Checks key and add key_prefix."""
+        return check_key_helper(key, 
allow_unicode_keys=self.allow_unicode_keys)
+
+    def clear(self):
+        """Method used to clear/reset mock cache"""
+        self._contents.clear()
+
     def get(self, key, default=None):
-        if not self.allow_unicode_keys:
-            if isinstance(key, six.string_types):
-                try:
-                    if isinstance(key, bytes):
-                        key = key.decode().encode('ascii')
-                    else:
-                        key = key.encode('ascii')
-                except (UnicodeEncodeError, UnicodeDecodeError):
-                    raise MemcacheIllegalInputError
+        key = self.check_key(key)
 
         if key not in self._contents:
             return default
@@ -75,15 +78,7 @@
     get_multi = get_many
 
     def set(self, key, value, expire=0, noreply=True, flags=0):
-        if not self.allow_unicode_keys:
-            if isinstance(key, six.string_types):
-                try:
-                    if isinstance(key, bytes):
-                        key = key.decode().encode()
-                    else:
-                        key = key.encode(self.encoding)
-                except (UnicodeEncodeError, UnicodeDecodeError):
-                    raise MemcacheIllegalInputError
+        key = self.check_key(key)
         if (isinstance(value, six.string_types) and
                 not isinstance(value, six.binary_type)):
             try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymemcache-3.0.0/pymemcache.egg-info/PKG-INFO 
new/pymemcache-3.0.1/pymemcache.egg-info/PKG-INFO
--- old/pymemcache-3.0.0/pymemcache.egg-info/PKG-INFO   2020-01-02 
22:43:14.000000000 +0100
+++ new/pymemcache-3.0.1/pymemcache.egg-info/PKG-INFO   2020-03-20 
18:06:20.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pymemcache
-Version: 3.0.0
+Version: 3.0.1
 Summary: "A comprehensive, fast, pure Python memcached client"
 Home-page: https://github.com/pinterest/pymemcache
 Author: Charles Gordon
@@ -132,6 +132,7 @@
         * `Joe Gordon <https://github.com/jogo>`_
         * `Jon Parise <https://github.com/jparise>`_
         * `Stephen Rosen <https://github.com/sirosen>`_
+        * `Feras Alazzeh <https://github.com/FerasAlazzeh>`_
         
         We're Hiring!
         =============
@@ -141,6 +142,12 @@
         Changelog
         =========
         
+        New in version 3.0.1
+        --------------------
+        * Make MockMemcacheClient more consistent with the real client.
+        * Pass ``encoding`` from HashClient to its pooled clients when 
``use_pooling``
+          is enabled.
+        
         New in version 3.0.0
         --------------------
         * The serialization API has been reworked. Instead of consuming a 
serializer


Reply via email to