def test__clearAccessCounters(self): s = Storage(maxEntries=3) object = 'object' object2 = 'object2' key1 = ('view1', (), ('answer', 42)) key2 = ('view2', (), ('answer', 42)) key3 = ('view3', (), ('answer', 42)) value = 'yes' timestamp = time() s._data = {object: {key1: [value, 1, 10], key2: [value, 2, 5], key3: [value, 3, 2]}, object2: {key1: [value, 4, 2], key2: [value, 5, 1], key3: [value, 6, 1]}} s._misses = {object: 4, object2: 2} cleared = {object: {key1: [value, 1, 0], key2: [value, 2, 0], key3: [value, 3, 0]}, object2: {key1: [value, 4, 0], key2: [value, 5, 0], key3: [value, 6, 0]}} clearMisses = {object: 0, object2: 0} s._clearAccessCounters() self.assertEqual(s._data, cleared, "access counters not cleared") self.assertEqual(s._misses, clearMisses, "misses counter not cleared")
def test_getStatistics(self): s = Storage(maxEntries=3) object = 'object' object2 = 'object2' key1 = ('view1', (), ('answer', 42)) key2 = ('view2', (), ('answer', 42)) key3 = ('view3', (), ('answer', 42)) value = 'yes' timestamp = time() s._data = {object: {key1: [value, 1, 10], key2: [value, 2, 5], key3: [value, 3, 2]}, object2: {key1: [value, 4, 2], key2: [value, 5, 1], key3: [value, 6, 1]}} s._misses = {object: 11, object2: 42} len1 = len(dumps(s._data[object])) len2 = len(dumps(s._data[object2])) expected = ({'path': object, 'hits': 17, 'misses': 11, 'size': len1, 'entries': 3 }, {'path': object2, 'hits': 4, 'misses': 42, 'size': len2, 'entries': 3 }, ) result = s.getStatistics() self.assertEqual(result, expected)
def test_invalidateAll(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._invalidate_queue = [(object, None)] s._misses = {object: 10, object2: 100} s.invalidateAll() self.assertEqual(s._data, {}, "not invalidated") self.assertEqual(s._misses, {}, "miss counters not reset") self.assertEqual(s._invalidate_queue, [], "invalidate queue not empty")
def test_getStatistics(self): from cPickle import dumps s = Storage(maxEntries=3) object = 'object' object2 = 'object2' key1 = ('view1', (), ('answer', 42)) key2 = ('view2', (), ('answer', 42)) key3 = ('view3', (), ('answer', 42)) value = 'yes' timestamp = time() s._data = {object: {key1: [value, 1, 10], key2: [value, 2, 5], key3: [value, 3, 2]}, object2: {key1: [value, 4, 2], key2: [value, 5, 1], key3: [value, 6, 1]}} s._misses = {object: 11, object2: 42} len1 = len(dumps(s._data[object])) len2 = len(dumps(s._data[object2])) expected = ({'path': object, 'hits': 17, 'misses': 11, 'size': len1, 'entries': 3 }, {'path': object2, 'hits': 4, 'misses': 42, 'size': len2, 'entries': 3 }, ) result = s.getStatistics() self.assertEqual(result, expected)