/usr/share/pyshared/repoze/lru/tests.py is in python-repoze.lru 0.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | import unittest
class LRUCacheTests(unittest.TestCase):
def _getTargetClass(self):
from repoze.lru import LRUCache
return LRUCache
def _makeOne(self, size):
return self._getTargetClass()(size)
def test_size_lessthan_1(self):
self.assertRaises(ValueError, self._makeOne, 0)
def test_it(self):
cache = self._makeOne(3)
self.assertEqual(cache.get('a'), None)
cache.put('a', '1')
pos, value = cache.data.get('a')
self.assertEqual(cache.clock[pos]['ref'], True)
self.assertEqual(cache.clock[pos]['key'], 'a')
self.assertEqual(value, '1')
self.assertEqual(cache.get('a'), '1')
self.assertEqual(cache.hand, pos+1)
pos, value = cache.data.get('a')
self.assertEqual(cache.clock[pos]['ref'], True)
self.assertEqual(cache.hand, pos+1)
self.assertEqual(len(cache.data), 1)
cache.put('b', '2')
pos, value = cache.data.get('b')
self.assertEqual(cache.clock[pos]['ref'], True)
self.assertEqual(cache.clock[pos]['key'], 'b')
self.assertEqual(len(cache.data), 2)
cache.put('c', '3')
pos, value = cache.data.get('c')
self.assertEqual(cache.clock[pos]['ref'], True)
self.assertEqual(cache.clock[pos]['key'], 'c')
self.assertEqual(len(cache.data), 3)
pos, value = cache.data.get('a')
self.assertEqual(cache.clock[pos]['ref'], True)
cache.get('a')
cache.put('d', '4')
self.assertEqual(len(cache.data), 3)
self.assertEqual(cache.data.get('b'), None)
cache.put('e', '5')
self.assertEqual(len(cache.data), 3)
self.assertEqual(cache.data.get('c'), None)
self.assertEqual(cache.get('d'), '4')
self.assertEqual(cache.get('e'), '5')
self.assertEqual(cache.get('a'), '1')
self.assertEqual(cache.get('b'), None)
self.assertEqual(cache.get('c'), None)
class DecoratorTests(unittest.TestCase):
def _getTargetClass(self):
from repoze.lru import lru_cache
return lru_cache
def _makeOne(self, maxsize, cache):
return self._getTargetClass()(maxsize, cache)
def test_ctor_nocache(self):
decorator = self._makeOne(10, None)
self.assertEqual(decorator.cache.size, 10)
def test_singlearg(self):
cache = DummyLRUCache()
decorator = self._makeOne(0, cache)
def wrapped(key):
return key
decorated = decorator(wrapped)
result = decorated(1)
self.assertEqual(cache[(1,)], 1)
self.assertEqual(result, 1)
self.assertEqual(len(cache), 1)
result = decorated(2)
self.assertEqual(cache[(2,)], 2)
self.assertEqual(result, 2)
self.assertEqual(len(cache), 2)
result = decorated(2)
self.assertEqual(cache[(2,)], 2)
self.assertEqual(result, 2)
self.assertEqual(len(cache), 2)
def test_multiargs(self):
cache = DummyLRUCache()
decorator = self._makeOne(0, cache)
def moreargs(*args):
return args
decorated = decorator(moreargs)
result = decorated(3, 4, 5)
self.assertEqual(cache[(3,4,5)], (3,4,5))
self.assertEqual(result, (3,4,5))
self.assertEqual(len(cache), 1)
class DummyLRUCache(dict):
def put(self, k, v):
return self.__setitem__(k, v)
|