Fixed #10646: `cache.incr()` and `decr()` now fail consistantly under python-memcache and cmemcache.
Though it looks like this commit has no tests that's not so: this is tested for in `regressiontests/cache/tests.py` around like 183; these tests currently fail if ran against cmemcache. Thanks, andrewfong. git-svn-id: http://code.djangoproject.com/svn/django/trunk@11855 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
1c5fe467bd
commit
07ba0dbaf7
|
@ -46,7 +46,28 @@ class CacheClass(BaseCache):
|
|||
self._cache.disconnect_all()
|
||||
|
||||
def incr(self, key, delta=1):
|
||||
return self._cache.incr(key, delta)
|
||||
try:
|
||||
val = self._cache.incr(key, delta)
|
||||
|
||||
# python-memcache responds to incr on non-existent keys by
|
||||
# raising a ValueError. Cmemcache returns None. In both
|
||||
# cases, we should raise a ValueError though.
|
||||
except ValueError:
|
||||
val = None
|
||||
if val is None:
|
||||
raise ValueError("Key '%s' not found" % key)
|
||||
|
||||
return val
|
||||
|
||||
def decr(self, key, delta=1):
|
||||
return self._cache.decr(key, delta)
|
||||
try:
|
||||
val = self._cache.decr(key, delta)
|
||||
|
||||
# python-memcache responds to decr on non-existent keys by
|
||||
# raising a ValueError. Cmemcache returns None. In both
|
||||
# cases, we should raise a ValueError though.
|
||||
except ValueError:
|
||||
val = None
|
||||
if val is None:
|
||||
raise ValueError("Key '%s' not found" % key)
|
||||
return val
|
||||
|
|
Loading…
Reference in New Issue