diff --git a/apps/amo/ext.py b/apps/amo/ext.py index 1e1d17b5271..9f58b3bb354 100644 --- a/apps/amo/ext.py +++ b/apps/amo/ext.py @@ -10,13 +10,13 @@ class FragmentCacheExtension(caching.ext.FragmentCacheExtension): def process_cache_arguments(self, args): args.append(nodes.Getattr(nodes.ContextReference(), 'request', 'load')) - def _cache_support(self, name, obj, timeout, request, caller): + def _cache_support(self, name, obj, timeout, extra, request, caller): if isinstance(request, jinja2.runtime.Undefined): key = name else: key = '%s:%s' % (name, request.APP.id) sup = super(FragmentCacheExtension, self)._cache_support - return sup(key, obj, timeout, caller) + return sup(key, obj, timeout, extra, caller) cache = FragmentCacheExtension diff --git a/apps/api/templates/api/includes/addon.xml b/apps/api/templates/api/includes/addon.xml index 0b27dc3bb0d..9ed0965a378 100644 --- a/apps/api/templates/api/includes/addon.xml +++ b/apps/api/templates/api/includes/addon.xml @@ -1,4 +1,4 @@ -{% cache addon %} +{% cache addon, extra=[api_version] %} {{ addon.name }} {{ amo.ADDON_TYPE[addon.type] }} diff --git a/apps/api/tests.py b/apps/api/tests.py index 60f8dae24b1..558da68eca0 100644 --- a/apps/api/tests.py +++ b/apps/api/tests.py @@ -92,6 +92,16 @@ class APITest(TestCase): fixtures = ('base/apps', 'base/addon_3615', 'base/addon_4664_twitterbar', 'base/addon_5299_gcal', ) + def test_api_caching(self): + response = self.client.get('/en-US/firefox/api/1.5/addon/3615') + eq_(response.status_code, 200) + self.assertContains(response, '