Beispiel #1
0
        def testStandardApiVkey(self):
            """Test dzialania danych powiazanych kluczemwersji
            """
            vkey = self.key_prefix + "StandardApi.vkey.vkey"
            key1 = self.key_prefix + "StandardApi.timeout.k1"
            key2 = self.key_prefix + "StandardApi.timeout.k2"
            data = "vkey-test"
            self.to_delete.extend([key1, key2, vkey])

            # Wrzucamy dane do obu kluczy (z vkey) i pobieramy je
            put(key1, data, 0, vkey, False)
            put(key2, data, 0, vkey, False)

            for key in (key1, key2):
                gdata = get(key, False)
                self.assertEqual(data, gdata, u"Problem z danymi w memoize. key=%s, %s != %s" % (key, data, gdata))

            # Sprawdzamy czy dane wrzucone do cache dobrze zostaly zapisane
            gdata = _get(key1, False)
            #self.assertTrue(isinstance(gdata, tuple), u"Dane w cache powinny miec krotke przy vkey. gdata=%s" % str(gdata)) # Wcale ze nie
            self.assertTrue(isinstance(gdata, dict), u"Dane w cache powinny byc w slowniku przy vkey. gdata=%s" % str(gdata))
            gdata = get(key1, False)
            self.assertEqual(data, gdata, u"Problem z danymi w memoize. gdata=%s" % str(gdata))

            # incalidujemy klucz wersi i sprawdzamy czy invalidowalo klucze
            invalidatev(vkey)
            self.assertNotEqual(data, get(key1, False), u"Dane w cache salej sa mimo invalidate")
            self.assertNotEqual(data, get(key2, False), u"Dane w cache salej sa mimo invalidate")
Beispiel #2
0
        def testStandardApiLocalCache(self):
            """Testujemy obsluge localcache
            """
            key1 = self.key_prefix + "StandardApi.local_cache.k1"
            key2 = self.key_prefix + "StandardApi.local_cache.k2"
            vkey = self.key_prefix + "StandardApi.local_cache.vkey"
            self.to_delete.extend([key1, key2, vkey])
            data = "test_local_cache"

            # Wrzucamy dane do cache lokalnego i pobieramy
            localcache_put(key1, data) #local_memoize_cache[key1] = data
            gdata = localcache_get(key1)
            self.assertEqual(gdata, data, u"Dane w cache sa inne: %s != %s" % (data, gdata))
            invalidate(key1)

            # Wrzucamy dane
            data = (1, data)

            localcache_put(vkey, 1) #local_memoize_cache[vkey] = 1
            localcache_put(key1, data) #local_memoize_cache[key1] = data
            localcache_put(key2, data) #local_memoize_cache[key2] = data

            gdata = localcache_get(key1)
            self.assertEqual(data[1], gdata[1], u"Dane w cache sa inne: %s != %s" % (data[1], gdata[1]))

            # invalidujemy vkey
            invalidatev(vkey)

            gdata = localcache_get(key1)
            self.assertNotEqual(data[1], gdata, u"Dane w cache nie zostaly zinvalidowane")
Beispiel #3
0
        def testDecorate(self):
            """Test dekoratora klasycznego memoize
            """
            key = self.key_prefix + "memoize.k1"
            vkey = self.key_prefix + "memoize.vkey"
            self.to_delete.append(key)

            # test klasycznego memoize bez zadnych dodatkowych opcji
            self.data = 2
            @memoize(key)
            def test1(a):
                self.data += 2
                return a**self.data

            self.assertEqual(test1(2), test1(2), u"dane w cache rozne  test1=%s  test2=%s" % (test1(2), test1(2)))
            delete(key)


            # test klasycznego memoize z vkey
            self.data=2
            @memoize(key, vkey)
            def test4(a):
                self.data += 2
                return a**self.data

            gdata = test4(2)
            invalidatev(vkey)
            gdata2 = test4(2)
            self.assertNotEqual(gdata2, gdata, u"Nie zinvalidowalo vkey")

            # test timeout memoize
            delete(key, vkey)
            @memoize(key_function=key, vkey_function=None, timeout=1, allow_none=False, l1=False)
            def test5(a):
                self.data += 2
                return a**self.data
            gdata = test5(2)
            sleep(2)
            self.assertNotEqual(test5(2), gdata, u"Nie usunieto danych z cache")
Beispiel #4
0
 memoize    DEBUG     memoize:127       VMISS (object not in memcache) [2na3], setting to v1235160207
    """

    test2 = memoize(lambda a, b : "%srazy%s" % (a,b), timeout = 1)(test2)

    test1(5, 4) # MISS
    test1(5, 4) # HIT
    test2(3, 6) # MISS
    test2(3, 6, __force_cache_invalidate_in_place = True) # Forced MISS
    test2(3, 6) # HIT
    test2(3, 6) # HIT

    test3_1(1,2) # VMISS
    test3_1(1,3) # VMISS
    test3_2(2,2) # VMISS
    test3_2(2,3) # VMISS

    invalidatev( group_vkey(2,2) )

    test3_1(1,2) #vhit
    test3_1(1,3) #vhit
    test3_2(2,2) #vmiss
    test3_2(2,3) #vmiss

    test3_1(1,2) # vhit
    test3_1(1,2, __force_cache_invalidate_in_place = True) # vhit
    test3_1(1,2) # vhit

    raising(1,2)