Fixed #21200 -- Consistantly raise errors across all cache backends.

Thanks to tchaumeny for the patch.
This commit is contained in:
Florian Apolloner 2013-11-23 17:50:28 +01:00
parent 0ec712dd11
commit e112654fc8
2 changed files with 27 additions and 0 deletions

15
tests/cache/tests.py vendored
View file

@ -48,6 +48,11 @@ class C:
return 24
class Unpickable(object):
def __getstate__(self):
raise pickle.PickleError()
@override_settings(CACHES={
'default': {
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
@ -847,6 +852,16 @@ class BaseCacheTests(object):
self.assertEqual(get_cache_data.content, content.encode('utf-8'))
self.assertEqual(get_cache_data.cookies, response.cookies)
def test_add_fail_on_pickleerror(self):
"See https://code.djangoproject.com/ticket/21200"
with self.assertRaises(pickle.PickleError):
cache.add('unpickable', Unpickable())
def test_set_fail_on_pickleerror(self):
"See https://code.djangoproject.com/ticket/21200"
with self.assertRaises(pickle.PickleError):
cache.set('unpickable', Unpickable())
@override_settings(CACHES=caches_setting_for_tests(
BACKEND='django.core.cache.backends.db.DatabaseCache',