Changeset 5718
- Timestamp:
- 07/16/07 04:36:10 (1 year ago)
- Files:
-
- django/trunk/django/core/cache/backends/filebased.py (modified) (2 diffs)
- django/trunk/django/core/cache/backends/memcached.py (modified) (2 diffs)
- django/trunk/tests/regressiontests/cache/tests.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/core/cache/backends/filebased.py
r4265 r5718 2 2 3 3 from django.core.cache.backends.simple import CacheClass as SimpleCacheClass 4 import os, time, urllib 4 from django.utils.http import urlquote_plus 5 import os, time 5 6 try: 6 7 import cPickle as pickle … … 78 79 79 80 def _key_to_file(self, key): 80 return os.path.join(self._dir, url lib.quote_plus(key))81 return os.path.join(self._dir, urlquote_plus(key)) django/trunk/django/core/cache/backends/memcached.py
r4827 r5718 2 2 3 3 from django.core.cache.backends.base import BaseCache, InvalidCacheBackendError 4 from django.utils.encoding import smart_unicode, smart_str 4 5 5 6 try: … … 17 18 18 19 def get(self, key, default=None): 19 val = self._cache.get( key)20 val = self._cache.get(smart_str(key)) 20 21 if val is None: 21 22 return default 22 23 else: 23 return val 24 if isinstance(val, basestring): 25 return smart_unicode(val) 26 else: 27 return val 24 28 25 29 def set(self, key, value, timeout=0): 26 self._cache.set(key, value, timeout or self.default_timeout) 30 if isinstance(value, unicode): 31 value = value.encode('utf-8') 32 self._cache.set(smart_str(key), value, timeout or self.default_timeout) 27 33 28 34 def delete(self, key): 29 self._cache.delete( key)35 self._cache.delete(smart_str(key)) 30 36 31 37 def get_many(self, keys): 32 return self._cache.get_multi( keys)38 return self._cache.get_multi(map(smart_str,keys)) django/trunk/tests/regressiontests/cache/tests.py
r5716 r5718 1 # -*- coding: utf-8 -*- 2 1 3 # Unit tests for cache framework 2 4 # Uses whatever cache backend is set in the test settings file. … … 20 22 def test_non_existent(self): 21 23 # get with non-existent keys 22 self.assertEqual(cache.get("does notexist"), None)23 self.assertEqual(cache.get("does notexist", "bang!"), "bang!")24 self.assertEqual(cache.get("does_not_exist"), None) 25 self.assertEqual(cache.get("does_not_exist", "bang!"), "bang!") 24 26 25 27 def test_get_many(self): … … 43 45 def test_has_key(self): 44 46 # has_key 45 cache.set("hello ", "goodbye")46 self.assertEqual(cache.has_key("hello "), True)47 self.assertEqual(cache.has_key("goodbye "), False)47 cache.set("hello1", "goodbye1") 48 self.assertEqual(cache.has_key("hello1"), True) 49 self.assertEqual(cache.has_key("goodbye1"), False) 48 50 49 51 def test_in(self): 50 cache.set("hello ", "goodbye")51 self.assertEqual("hello " in cache, True)52 self.assertEqual("goodbye " in cache, False)52 cache.set("hello2", "goodbye2") 53 self.assertEqual("hello2" in cache, True) 54 self.assertEqual("goodbye2" in cache, False) 53 55 54 56 def test_data_types(self): … … 62 64 'class' : C, 63 65 } 64 for (key, value) in stuff.items():65 cache.set(key, value)66 self.assertEqual(cache.get(key), value)67 66 68 67 def test_expiration(self): … … 72 71 self.assertEqual(cache.get("expire"), None) 73 72 73 def test_unicode(self): 74 stuff = { 75 u'ascii': u'ascii_value', 76 u'unicode_ascii': u'Iñtërnâtiônàlizætiøn1', 77 u'Iñtërnâtiônàlizætiøn': u'Iñtërnâtiônàlizætiøn2', 78 u'ascii': {u'x' : 1 } 79 } 80 for (key, value) in stuff.items(): 81 cache.set(key, value) 82 self.assertEqual(cache.get(key), value) 83 74 84 if __name__ == '__main__': 75 85 unittest.main()
