Fixed #7967 -- Make sure the __contains__ method in the cache backends call the
right has_key() method for the subclass. Patch from Marty Alchin. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8084 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
f49c5c23f9
commit
6f16b5bad2
|
@ -63,4 +63,11 @@ class BaseCache(object):
|
||||||
"""
|
"""
|
||||||
return self.get(key) is not None
|
return self.get(key) is not None
|
||||||
|
|
||||||
__contains__ = has_key
|
def __contains__(self, key):
|
||||||
|
"""
|
||||||
|
Returns True if the key is in the cache and has not expired.
|
||||||
|
"""
|
||||||
|
# This is a separate method, rather than just a copy of has_key(),
|
||||||
|
# so that it always has the same functionality as has_key(), even
|
||||||
|
# if a subclass overrides it.
|
||||||
|
return self.has_key(key)
|
||||||
|
|
|
@ -56,11 +56,15 @@ class Cache(unittest.TestCase):
|
||||||
cache.set("hello1", "goodbye1")
|
cache.set("hello1", "goodbye1")
|
||||||
self.assertEqual(cache.has_key("hello1"), True)
|
self.assertEqual(cache.has_key("hello1"), True)
|
||||||
self.assertEqual(cache.has_key("goodbye1"), False)
|
self.assertEqual(cache.has_key("goodbye1"), False)
|
||||||
|
cache.set("empty", 'fred')
|
||||||
|
self.assertEqual(cache.has_key("empty"), True)
|
||||||
|
|
||||||
def test_in(self):
|
def test_in(self):
|
||||||
cache.set("hello2", "goodbye2")
|
cache.set("hello2", "goodbye2")
|
||||||
self.assertEqual("hello2" in cache, True)
|
self.assertEqual("hello2" in cache, True)
|
||||||
self.assertEqual("goodbye2" in cache, False)
|
self.assertEqual("goodbye2" in cache, False)
|
||||||
|
cache.set("empty", 'fred')
|
||||||
|
self.assertEqual("empty" in cache, True)
|
||||||
|
|
||||||
def test_data_types(self):
|
def test_data_types(self):
|
||||||
stuff = {
|
stuff = {
|
||||||
|
|
Loading…
Reference in New Issue