diff options
-rw-r--r-- | pymemcache/client/hash.py | 11 | ||||
-rw-r--r-- | pymemcache/test/test_client_hash.py | 4 |
2 files changed, 6 insertions, 9 deletions
diff --git a/pymemcache/client/hash.py b/pymemcache/client/hash.py index 6ec8d1f..c2adb89 100644 --- a/pymemcache/client/hash.py +++ b/pymemcache/client/hash.py @@ -336,15 +336,12 @@ class HashClient(object): succeeded = [] try: - for key, value in six.iteritems(values): - result = client.set(key, value, *args, **kwargs) - if result: - succeeded.append(key) - else: - failed.append(key) + failed = client.set_many(values, *args, **kwargs) except Exception as e: - return succeeded, failed, e + if not self.ignore_exc: + return succeeded, failed, e + succeeded = [key for key in six.iterkeys(values) if key not in failed] return succeeded, failed, None def close(self): diff --git a/pymemcache/test/test_client_hash.py b/pymemcache/test/test_client_hash.py index 04b5123..ad3f2da 100644 --- a/pymemcache/test/test_client_hash.py +++ b/pymemcache/test/test_client_hash.py @@ -301,7 +301,7 @@ class TestHashClient(ClientTestMixin, unittest.TestCase): ], ignore_exc=True) result = client.set_many(values, noreply=False) - assert len(result) == 2 + assert len(result) == 0 def test_noreply_set_many(self): values = { @@ -336,7 +336,7 @@ class TestHashClient(ClientTestMixin, unittest.TestCase): ]) result = client.set_many(values, noreply=False) - assert result == ['key2'] + assert len(result) == 1 def test_server_encoding_pooled(self): """ |