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")
def tearDown(self): global local_memoize_cache if self.to_delete: delete(*self.to_delete)