def test_do_invalidate(self): s = Storage() object = 'object' object2 = 'object2' key = ('view', (), ('answer', 41)) key2 = ('view2', (), ('answer', 42)) value = 'yes' ts = time() s._data = {object: {key: [value, ts, 0], key2: [value, ts, 0]}, object2: {key: [value, ts, 0]}} s._misses[object] = 42 s._do_invalidate(object) self.assertEqual(s._data, {object2: {key: [value, ts, 0]}}, 'invalidation failed') self.assertEqual(s._misses[object], 0, "misses counter not cleared") s._data = {object: {key: [value, ts, 0], key2: [value, ts, 0]}, object2: {key: [value, ts, 0]}} s._do_invalidate(object, key2) self.assertEqual(s._data, {object: {key: [value, ts, 0]}, object2: {key: [value, ts, 0]}}, 'invalidation of one key failed')