Example #1
0
    def wrapper(self, *args, **kwargs):
        c = Cache.get(self.request.tid, self.request.path,
                      self.request.language)
        if c is None:
            d = defer.maybeDeferred(f, self, *args, **kwargs)

            def callback(data):
                if isinstance(data, (dict, list)):
                    self.request.setHeader(b'content-type',
                                           b'application/json')
                    data = json.dumps(data, cls=JSONEncoder)

                c = self.request.responseHeaders.getRawHeaders(
                    b'Content-type', [b'application/json'])[0]
                return Cache.set(self.request.tid, self.request.path,
                                 self.request.language, c, data)[1]

            d.addCallback(callback)

            return d

        else:
            self.request.setHeader(b'Content-type', c[0])

        return c[1]
Example #2
0
 def test_cache(self):
     self.assertEqual(Cache.memory_cache_dict, {})
     self.assertIsNone(Cache.get(1, "passante_di_professione", "it"))
     self.assertIsNone(Cache.get(1, "passante_di_professione", "en"))
     self.assertIsNone(Cache.get(2, "passante_di_professione", "ca"))
     Cache.set(1, "passante_di_professione", "it", 'text/plain', 'ititit')
     Cache.set(1, "passante_di_professione", "en", 'text/plain', 'enenen')
     Cache.set(2, "passante_di_professione", "ca", 'text/plain', 'cacaca')
     self.assertTrue(
         "passante_di_professione" in Cache.memory_cache_dict[1])
     self.assertTrue(
         "passante_di_professione" in Cache.memory_cache_dict[2])
     self.assertIsNone(Cache.get(1, "passante_di_professione", "ca"))
     self.assertTrue(
         "it" in Cache.memory_cache_dict[1]['passante_di_professione'])
     self.assertTrue(
         "en" in Cache.memory_cache_dict[1]['passante_di_professione'])
     self.assertIsNone(Cache.get(1, "passante_di_professione", "ca"))
     Cache.invalidate()
     self.assertEqual(Cache.memory_cache_dict, {})
Example #3
0
 def test_cache(self):
     self.assertEqual(Cache.memory_cache_dict, {})
     self.assertIsNone(Cache.get(1, "passante_di_professione", "it"))
     self.assertIsNone(Cache.get(1, "passante_di_professione", "en"))
     self.assertIsNone(Cache.get(2, "passante_di_professione", "ca"))
     Cache.set(1, "passante_di_professione", "it", 'text/plain', 'ititit')
     Cache.set(1, "passante_di_professione", "en", 'text/plain', 'enenen')
     Cache.set(2, "passante_di_professione", "ca", 'text/plain', 'cacaca')
     self.assertTrue("passante_di_professione" in Cache.memory_cache_dict[1])
     self.assertTrue("passante_di_professione" in Cache.memory_cache_dict[2])
     self.assertIsNone(Cache.get(1, "passante_di_professione", "ca"))
     self.assertTrue("it" in Cache.memory_cache_dict[1]['passante_di_professione'])
     self.assertTrue("en" in Cache.memory_cache_dict[1]['passante_di_professione'])
     self.assertIsNone(Cache.get(1, "passante_di_professione", "ca"))
     self.assertEqual(Cache.get(1, "passante_di_professione", "it")[1], gzipdata('ititit'))
     self.assertEqual(Cache.get(1, "passante_di_professione", "en")[1], gzipdata('enenen'))
     self.assertEqual(Cache.get(2, "passante_di_professione", "ca")[1], gzipdata('cacaca'))
     Cache.invalidate()
     self.assertEqual(Cache.memory_cache_dict, {})
Example #4
0
    def wrapper(self, *args, **kwargs):
        c = Cache.get(self.request.tid, self.request.path, self.request.language)
        if c is None:
            d = defer.maybeDeferred(f, self, *args, **kwargs)

            def callback(data):
                if isinstance(data, (dict, list)):
                    self.request.setHeader(b'content-type', b'application/json')
                    data = json.dumps(data)

                self.request.setHeader(b'Content-encoding', b'gzip')

                c = self.request.responseHeaders.getRawHeaders(b'Content-type', [b'application/json'])[0]
                return Cache.set(self.request.tid, self.request.path, self.request.language, c, data)[1]

            d.addCallback(callback)

            return d

        else:
            self.request.setHeader(b'Content-encoding', b'gzip')
            self.request.setHeader(b'Content-type', c[0])

        return c[1]