Mercurial > hg
view tests/test-lrucachedict.py @ 19289:6ea1f858efd9
bundle: refactor changegroup prune to be its own function
Moving the prune function to be a non-nested function allows extensions to
control which revisions are allowed in the changegroup. For example, in my
shallow repo extension I want to prevent filelogs from being added to the
bundle.
This also allows an extension to use a filelog implementation that doesn't
have revlog.linkrev implemented.
author | Durham Goode <durham@fb.com> |
---|---|
date | Thu, 30 May 2013 17:51:13 -0700 |
parents | 2251b3184e6e |
children | 887ffa22fd0d |
line wrap: on
line source
from mercurial import util def printifpresent(d, xs): for x in xs: present = x in d print "'%s' in d: %s" % (x, present) if present: print "d['%s']: %s" % (x, d[x]) def test_lrucachedict(): d = util.lrucachedict(4) d['a'] = 'va' d['b'] = 'vb' d['c'] = 'vc' d['d'] = 'vd' # all of these should be present printifpresent(d, ['a', 'b', 'c', 'd']) # 'a' should be dropped because it was least recently used d['e'] = 've' printifpresent(d, ['a', 'b', 'c', 'd', 'e']) # touch entries in some order (get or set). d['e'] d['c'] = 'vc2' d['d'] d['b'] = 'vb2' # 'e' should be dropped now d['f'] = 'vf' printifpresent(d, ['b', 'c', 'd', 'e', 'f']) if __name__ == '__main__': test_lrucachedict()