def test_invalidate(self): from zope.app.cache.ram import RAMCache ob1 = ("loc1",) ob2 = ("loc2",) keywords = {"answer": 42} keywords2 = {"answer": 41} value = "true" c = RAMCache() key1 = RAMCache._buildKey(keywords) key2 = RAMCache._buildKey(keywords) key3 = RAMCache._buildKey(keywords2) # Test invalidating entries with a keyword c._getStorage().setEntry(ob1, key1, value) c._getStorage().setEntry(ob2, key2, value) c._getStorage().setEntry(ob2, key3, value) c.invalidate(ob2, keywords) c._getStorage().getEntry(ob1, key1) self.assertRaises(KeyError, c._getStorage().getEntry, ob2, key2) c._getStorage().getEntry(ob2, key3) # Test deleting the whole object c._getStorage().setEntry(ob1, key1, value) c._getStorage().setEntry(ob2, key2, value) c._getStorage().setEntry(ob2, key3, value) c.invalidate(ob2) self.assertRaises(KeyError, c._getStorage().getEntry, ob2, key2) self.assertRaises(KeyError, c._getStorage().getEntry, ob2, key3) c._getStorage().getEntry(ob1, key1) # Try something that's not there c.invalidate(('yadda',))