示例#1
0
 def test_get_article_uses_the_publishable_key_and_version_from_cache(self):
     key = utils._get_key(utils.KEY_PREFIX, ContentType.objects.get_for_model(Article), pk=123, version_key=True)
     self.cache.set(key, 3)
     tools.assert_equals(
         ':'.join((utils.KEY_PREFIX, str(ContentType.objects.get_for_model(Publishable).pk), '123', '3')),
         utils._get_key(utils.KEY_PREFIX, ContentType.objects.get_for_model(Article), pk=123)
     )
示例#2
0
    def test_save_invalidates_object(self):
        self.ct = ContentType.objects.get_for_model(ContentType)
        ct = utils.get_cached_object(self.ct, pk=self.ct.pk)

        tools.assert_equals(ct, self.ct)
        tools.assert_equals(self.ct, self.cache.get(utils._get_key(utils.KEY_PREFIX, self.ct, pk=self.ct.pk)))
        self.ct.save()
        tools.assert_equals(None, self.cache.get(utils._get_key(utils.KEY_PREFIX, self.ct, pkr=self.ct.pk)))
示例#3
0
 def test_get_article_uses_the_publishable_key_and_version_from_cache(self):
     key = utils._get_key(utils.KEY_PREFIX,
                          ContentType.objects.get_for_model(Article),
                          pk=123,
                          version_key=True)
     self.cache.set(key, 3)
     tools.assert_equals(
         ':'.join((utils.KEY_PREFIX,
                   str(ContentType.objects.get_for_model(Publishable).pk),
                   '123', '3')),
         utils._get_key(utils.KEY_PREFIX,
                        ContentType.objects.get_for_model(Article),
                        pk=123))
示例#4
0
    def test_save_invalidates_object(self):
        self.ct = ContentType.objects.get_for_model(ContentType)
        ct = utils.get_cached_object(self.ct, pk=self.ct.pk)

        tools.assert_equals(ct, self.ct)
        tools.assert_equals(
            self.ct,
            self.cache.get(
                utils._get_key(utils.KEY_PREFIX, self.ct, pk=self.ct.pk)))
        self.ct.save()
        tools.assert_equals(
            None,
            self.cache.get(
                utils._get_key(utils.KEY_PREFIX, self.ct, pkr=self.ct.pk)))
示例#5
0
 def test_box_cache_key_is_prefixed_by_objects_key(self):
     box = Box(self.publishable, 'box_type', [])
     # initialize the box's .params attribute
     box.prepare({})
     tools.assert_true(box.get_cache_key().startswith(
         _get_key(KEY_PREFIX,
                  self.publishable.content_type,
                  pk=self.publishable.pk)))
示例#6
0
 def test_get_article_uses_the_publishable_key_and_0_for_version(self):
     tools.assert_equals(
         ':'.join((utils.KEY_PREFIX,
                   str(ContentType.objects.get_for_model(Publishable).pk),
                   '123', '0')),
         utils._get_key(utils.KEY_PREFIX,
                        ContentType.objects.get_for_model(Article),
                        pk=123))
示例#7
0
    def test_save_increases_version(self):
        self.ct = ContentType.objects.get_for_model(ContentType)
        key = utils._get_key(utils.KEY_PREFIX, self.ct, pk=self.ct.pk, version_key=True)

        self.ct.save()
        initial_version = self.cache.get(key)
        self.ct.save()
        new_version = self.cache.get(key)

        tools.assert_equals(new_version, initial_version + 1)
示例#8
0
文件: box.py 项目: 3108as/ella
    def get_cache_key(self):
        " Return a cache key constructed from the box's parameters. "
        if not self.is_model:
            return None

        pars = ''
        if self.params:
            pars = ','.join(':'.join((smart_str(key), smart_str(self.params[key]))) for key in sorted(self.params.keys()))

        return normalize_key('%s:box:%d:%s:%s' % (
                _get_key(KEY_PREFIX, self.ct, pk=self.obj.pk), settings.SITE_ID, str(self.box_type), pars
            ))
示例#9
0
    def test_save_increases_version(self):
        self.ct = ContentType.objects.get_for_model(ContentType)
        key = utils._get_key(utils.KEY_PREFIX,
                             self.ct,
                             pk=self.ct.pk,
                             version_key=True)

        self.ct.save()
        initial_version = self.cache.get(key)
        self.ct.save()
        new_version = self.cache.get(key)

        tools.assert_equals(new_version, initial_version + 1)
示例#10
0
    def get_cache_key(self):
        " Return a cache key constructed from the box's parameters. "
        if not self.is_model:
            return None

        pars = ''
        if self.params:
            pars = ','.join(':'.join((smart_str(key),
                                      smart_str(self.params[key])))
                            for key in sorted(self.params.keys()))

        return normalize_key('%s:box:%d:%s:%s' %
                             (_get_key(KEY_PREFIX, self.ct, pk=self.obj.pk),
                              settings.SITE_ID, str(self.box_type), pars))
示例#11
0
 def test_get_article_uses_the_publishable_key(self):
     tools.assert_equals(
         ':'.join((utils.KEY_PREFIX, str(ContentType.objects.get_for_model(Publishable).pk), '123')),
         utils._get_key(utils.KEY_PREFIX, ContentType.objects.get_for_model(Article), pk=123)
     )
示例#12
0
文件: test_boxes.py 项目: 3108as/ella
 def test_box_cache_key_is_prefixed_by_objects_key(self):
     box = Box(self.publishable, 'box_type', [])
     # initialize the box's .params attribute
     box.prepare({})
     tools.assert_true(box.get_cache_key().startswith(_get_key(KEY_PREFIX, self.publishable.content_type, pk=self.publishable.pk)))