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()
|
self._cache.disconnect_all()
|
||||||
|
|
||||||
def incr(self, key, delta=1):
|
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):
|
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