mirror of https://github.com/mahmoud/boltons.git
fixes #21 - self.root was not being correctly updated, so the list never rotated out entries!
this has a very simple test to demonstrate the issue is closed. more tests are needed.
This commit is contained in:
parent
bad95b645c
commit
5650098a61
|
@ -133,7 +133,7 @@ class LRU(dict):
|
||||||
oldroot[KEY] = key
|
oldroot[KEY] = key
|
||||||
oldroot[VALUE] = value
|
oldroot[VALUE] = value
|
||||||
# prevent ref counts going to zero during update
|
# prevent ref counts going to zero during update
|
||||||
root = oldroot[NEXT]
|
self.root = root = oldroot[NEXT]
|
||||||
oldkey, oldresult = root[KEY], root[VALUE]
|
oldkey, oldresult = root[KEY], root[VALUE]
|
||||||
root[KEY] = root[VALUE] = None
|
root[KEY] = root[VALUE] = None
|
||||||
# Now update the cache dictionary.
|
# Now update the cache dictionary.
|
||||||
|
@ -433,8 +433,15 @@ def cached(cache, typed=False):
|
||||||
return cached_func_decorator
|
return cached_func_decorator
|
||||||
|
|
||||||
|
|
||||||
|
def test_21():
|
||||||
|
cache = LRU(max_size=3)
|
||||||
|
for i in xrange(4):
|
||||||
|
cache[i] = i
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
test_21()
|
||||||
|
|
||||||
def _test_lri():
|
def _test_lri():
|
||||||
import string
|
import string
|
||||||
bc = LRI(10, on_miss=lambda k: k.upper())
|
bc = LRI(10, on_miss=lambda k: k.upper())
|
||||||
|
|
Loading…
Reference in New Issue