Loading django/core/cache/backends/locmem.py +9 −8 Original line number Diff line number Diff line Loading @@ -29,8 +29,7 @@ class LocMemCache(BaseCache): self.validate_key(key) pickled = pickle.dumps(value, pickle.HIGHEST_PROTOCOL) with self._lock.writer(): exp = self._expire_info.get(key, 0) if exp is not None and exp <= time.time(): if self._has_expired(key): self._set(key, pickled, timeout) return True return False Loading @@ -40,8 +39,7 @@ class LocMemCache(BaseCache): self.validate_key(key) pickled = None with self._lock.reader(): exp = self._expire_info.get(key, 0) if exp is None or exp > time.time(): if not self._has_expired(key): pickled = self._cache[key] if pickled is not None: try: Loading Loading @@ -85,10 +83,7 @@ class LocMemCache(BaseCache): key = self.make_key(key, version=version) self.validate_key(key) with self._lock.reader(): exp = self._expire_info.get(key) if exp is None: return False elif exp > time.time(): if not self._has_expired(key): return True with self._lock.writer(): Loading @@ -99,6 +94,12 @@ class LocMemCache(BaseCache): pass return False def _has_expired(self, key): exp = self._expire_info.get(key, -1) if exp is None or exp > time.time(): return False return True def _cull(self): if self._cull_frequency == 0: self.clear() Loading tests/cache/tests.py +2 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,8 @@ class BaseCacheTests(object): cache.set("hello1", "goodbye1") self.assertEqual(cache.has_key("hello1"), True) self.assertEqual(cache.has_key("goodbye1"), False) cache.set("no_expiry", "here", None) self.assertEqual(cache.has_key("no_expiry"), True) def test_in(self): # The in operator can be used to inspect cache contents Loading Loading
django/core/cache/backends/locmem.py +9 −8 Original line number Diff line number Diff line Loading @@ -29,8 +29,7 @@ class LocMemCache(BaseCache): self.validate_key(key) pickled = pickle.dumps(value, pickle.HIGHEST_PROTOCOL) with self._lock.writer(): exp = self._expire_info.get(key, 0) if exp is not None and exp <= time.time(): if self._has_expired(key): self._set(key, pickled, timeout) return True return False Loading @@ -40,8 +39,7 @@ class LocMemCache(BaseCache): self.validate_key(key) pickled = None with self._lock.reader(): exp = self._expire_info.get(key, 0) if exp is None or exp > time.time(): if not self._has_expired(key): pickled = self._cache[key] if pickled is not None: try: Loading Loading @@ -85,10 +83,7 @@ class LocMemCache(BaseCache): key = self.make_key(key, version=version) self.validate_key(key) with self._lock.reader(): exp = self._expire_info.get(key) if exp is None: return False elif exp > time.time(): if not self._has_expired(key): return True with self._lock.writer(): Loading @@ -99,6 +94,12 @@ class LocMemCache(BaseCache): pass return False def _has_expired(self, key): exp = self._expire_info.get(key, -1) if exp is None or exp > time.time(): return False return True def _cull(self): if self._cull_frequency == 0: self.clear() Loading
tests/cache/tests.py +2 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,8 @@ class BaseCacheTests(object): cache.set("hello1", "goodbye1") self.assertEqual(cache.has_key("hello1"), True) self.assertEqual(cache.has_key("goodbye1"), False) cache.set("no_expiry", "here", None) self.assertEqual(cache.has_key("no_expiry"), True) def test_in(self): # The in operator can be used to inspect cache contents Loading