summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Jørgensen <hello@martinnj.dk>2021-05-27 10:13:04 +0200
committerMartin Jørgensen <hello@martinnj.dk>2021-05-27 10:13:04 +0200
commit148dc0f566b55d75d497c42b272e644f4e2ce930 (patch)
treef81ec355c6154261f2c1da18ce23841d437c9d03
parent64109c2b140807d19cb65ce8f34ff0121b468fe3 (diff)
downloadpymemcache-148dc0f566b55d75d497c42b272e644f4e2ce930.tar.gz
Use client.set_many in HashClient.
-rw-r--r--pymemcache/client/hash.py11
-rw-r--r--pymemcache/test/test_client_hash.py4
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):
"""