def _get_prismic_cache(cls, serialize = True, ref = None): ref = ref or Prismic if ref._prismic_cache: return ref._prismic_cache cache_engine = appier.conf("CACHE", "memory") cache_engine = appier.conf("CMS_CACHE_ENGINE", cache_engine) cache_engine = appier.conf("PRISMIC_CACHE_ENGINE", cache_engine) cache_engine = cache_engine.capitalize() + "Cache" cache_engine = getattr(appier, cache_engine) ref._prismic_cache = cache_engine.new(hash = True) if serialize: ref._prismic_cache = appier.SerializedCache(cls._prismic_cache) return ref._prismic_cache
def _get_contentful_cache(cls, serialize=True, ref=None): ref = ref or Contentful if ref._contentful_cache: return ref._contentful_cache cache_engine = appier.conf("CACHE", "memory") cache_engine = appier.conf("CMS_CACHE_ENGINE", cache_engine) cache_engine = appier.conf("CONTENTFUL_CACHE_ENGINE", cache_engine) cache_engine = cache_engine.capitalize() + "Cache" cache_engine = getattr(appier, cache_engine) ref._contentful_cache = cache_engine.new(hash=True) if serialize: ref._contentful_cache = appier.SerializedCache( cls._contentful_cache) return ref._contentful_cache
def test_serialized(self): cache = appier.FileCache.new() cache = appier.SerializedCache(cache) cache["first"] = 1 cache["second"] = 2 self.assertEqual(cache["first"], 1) self.assertEqual(cache["second"], 2) cache.set_item("first", 1, timeout=-1) self.assertEqual("first" in cache, False) self.assertRaises(KeyError, lambda: cache["first"]) cache.set_item("first", 1, timeout=3600) self.assertEqual(cache["first"], 1) cache.set_item("first", 1, expires=time.time() - 1) self.assertEqual("first" in cache, False) self.assertRaises(KeyError, lambda: cache["first"]) cache.set_item("first", 1, expires=time.time() + 3600) self.assertEqual(cache["first"], 1) cache["third"] = 3 self.assertEqual("third" in cache, True) self.assertNotEqual(cache.length(), 0) cache.clear() self.assertEqual("third" in cache, False) self.assertEqual(cache.length(), 0)