summaryrefslogtreecommitdiff
path: root/pymemcache
diff options
context:
space:
mode:
authorJoe Gordon <jogo@pinterest.com>2021-09-22 12:59:17 -0700
committerJon Parise <jon@pinterest.com>2022-02-20 12:03:14 -0800
commita5b349567920b4f4ad852e63911a3f71349949c7 (patch)
tree4f73cf41a9d690a54be8fffc390fad1832d10978 /pymemcache
parent4669da32b25b3de5f8eaaa542c1747b1f2707f0e (diff)
downloadpymemcache-a5b349567920b4f4ad852e63911a3f71349949c7.tar.gz
Use default for get ignore_exc
ignore_exc should treat an error as a cache miss and default specifies what should be returned on a miss. Fixes issue #350
Diffstat (limited to 'pymemcache')
-rw-r--r--pymemcache/client/base.py2
-rw-r--r--pymemcache/test/test_client.py10
2 files changed, 11 insertions, 1 deletions
diff --git a/pymemcache/client/base.py b/pymemcache/client/base.py
index 438ffe7..2fde2fa 100644
--- a/pymemcache/client/base.py
+++ b/pymemcache/client/base.py
@@ -1287,7 +1287,7 @@ class PooledClient(object):
return client.get(key, default)
except Exception:
if self.ignore_exc:
- return None
+ return default
else:
raise
diff --git a/pymemcache/test/test_client.py b/pymemcache/test/test_client.py
index 9938404..94c1251 100644
--- a/pymemcache/test/test_client.py
+++ b/pymemcache/test/test_client.py
@@ -381,6 +381,16 @@ class ClientTestMixin(object):
result = client.get(b'key', default='foobar')
assert result == 'foobar'
+ def test_get_ignore_exc_default(self):
+ client = self.make_client([b'INVALID DATA\r\n'], ignore_exc=True)
+ result = client.get(b'key', default='foobar')
+ assert result == 'foobar'
+
+ # Unit test for customized client (override _extract_value)
+ client = self.make_client([b'INVALID DATA\r\n'], ignore_exc=True)
+ result = client.get(b'key', default='foobar')
+ assert result == 'foobar'
+
def test_get_found(self):
client = self.make_client([
b'STORED\r\n',