diff --git a/cms/djangoapps/contentstore/tests/test_core_caching.py b/cms/djangoapps/contentstore/tests/test_core_caching.py index 8abb048aff..3abeaec2fd 100644 --- a/cms/djangoapps/contentstore/tests/test_core_caching.py +++ b/cms/djangoapps/contentstore/tests/test_core_caching.py @@ -1,18 +1,35 @@ from django.test.testcases import TestCase -from cache_toolbox.core import get_cached_content, set_cached_content -import mock +from cache_toolbox.core import get_cached_content, set_cached_content, del_cached_content +from xmodule.modulestore import Location +from xmodule.contentstore.content import StaticContent + +class Content: + def __init__(self, location, content): + self.location = location + self.content = content + + def get_id(self): + return StaticContent.get_id_from_location(self.location) class CachingTestCase(TestCase): # Tests for https://edx.lighthouseapp.com/projects/102637/tickets/112-updating-asset-does-not-refresh-the-cached-copy + unicodeLocation = Location(u'c4x', u'mitX', u'800', u'thumbnail', u'monsters.jpg') + # Note that some of the parts are strings instead of unicode strings + nonUnicodeLocation = Location('c4x', u'mitX', u'800', 'thumbnail', 'monsters.jpg') + mockAsset = Content(unicodeLocation, 'my content') + def test_put_and_get(self): - mockAsset = mock.Mock() - mockLocation = mock.Mock() - mockLocation.category = u'thumbnail' - mockLocation.name = u'monsters.jpg' - mockLocation.course = u'800' - mockLocation.tag = u'c4x' - mockLocation.org = u'mitX' - mockLocation.revision = None - mockAsset.location = mockLocation - set_cached_content(mockAsset) - cachedAsset = get_cached_content(mockLocation) + set_cached_content(self.mockAsset) + self.assertEqual(self.mockAsset.content, get_cached_content(self.unicodeLocation).content, + 'should be stored in cache with unicodeLocation') + self.assertEqual(self.mockAsset.content, get_cached_content(Location('c4x', u'mitX', u'800', 'thumbnail', 'monsters.jpg')).content, + 'should be stored in cache with nonUnicodeLocation') + + def test_delete(self): + set_cached_content(self.mockAsset) + del_cached_content(self.nonUnicodeLocation) + self.assertEqual(None, get_cached_content(self.nonUnicodeLocation), 'should not be stored in cache with nonUnicodeLocation') + self.assertEqual(None, get_cached_content(self.unicodeLocation), 'should not be stored in cache with unicodeLocation') + + + diff --git a/common/djangoapps/cache_toolbox/core.py b/common/djangoapps/cache_toolbox/core.py index 426b522e07..3bd184bc2c 100644 --- a/common/djangoapps/cache_toolbox/core.py +++ b/common/djangoapps/cache_toolbox/core.py @@ -108,23 +108,11 @@ def instance_key(model, instance_or_pk): getattr(instance_or_pk, 'pk', instance_or_pk), ) -import logging - def set_cached_content(content): - logging.warn("set cached---------------------------------------") - logging.warn(str(content.location)) cache.set(str(content.location), content) def get_cached_content(location): - logging.warn("get cached------------------------") - logging.warn(str(location)) - logging.warn(StaticContent.get_id_from_location(location)) return cache.get(str(location)) def del_cached_content(location): - if cache.get(str(location)) is None: - logging.err('nothing in cache for: ' + str(location)) - logging.warn("deleted cache----------") - logging.warn(str(location)) - logging.warn(StaticContent.get_id_from_location(location)) cache.delete(str(location))