Merge pull request #1286 from MITx/feature/christina/misc
Feature/christina/misc
This commit is contained in:
38
cms/djangoapps/contentstore/tests/test_core_caching.py
Normal file
38
cms/djangoapps/contentstore/tests/test_core_caching.py
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
from django.test.testcases import TestCase
|
||||||
|
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):
|
||||||
|
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(self.nonUnicodeLocation).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.unicodeLocation),
|
||||||
|
'should not be stored in cache with unicodeLocation')
|
||||||
|
self.assertEqual(None, get_cached_content(self.nonUnicodeLocation),
|
||||||
|
'should not be stored in cache with nonUnicodeLocation')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -109,10 +109,10 @@ def instance_key(model, instance_or_pk):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def set_cached_content(content):
|
def set_cached_content(content):
|
||||||
cache.set(content.get_id(), content)
|
cache.set(str(content.location), content)
|
||||||
|
|
||||||
def get_cached_content(location):
|
def get_cached_content(location):
|
||||||
return cache.get(StaticContent.get_id_from_location(location))
|
return cache.get(str(location))
|
||||||
|
|
||||||
def del_cached_content(location):
|
def del_cached_content(location):
|
||||||
cache.delete(StaticContent.get_id_from_location(location))
|
cache.delete(str(location))
|
||||||
|
|||||||
2
rakefile
2
rakefile
@@ -120,7 +120,7 @@ default_options = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
task :predjango do
|
task :predjango do
|
||||||
sh("find . -type f -name *.pyc -delete")
|
sh("find . -type f -name '*.pyc' -delete")
|
||||||
sh('pip install -q --upgrade --no-deps -r local-requirements.txt')
|
sh('pip install -q --upgrade --no-deps -r local-requirements.txt')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user