Mercurial > hg
view tests/test-lrucachedict.py @ 28387:97175d9bf7cf stable
files: don't recurse into subrepos without a path or -S (issue5127)
The 'm.always()' check was needed for when a path to 'sub1' is given, and 'sub1'
contains a subrepo itself. But that also caused the automatic recursion when no
path was given. Instead, force -S when printing a subrepo if the subpath is an
exact match (which will unconditionally recurse once in the nested subrepo).
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 06 Mar 2016 14:30:34 -0500 |
parents | 6cd3044985c2 |
children | e3f01188d439 |
line wrap: on
line source
from mercurial import util def printifpresent(d, xs, name='d'): for x in xs: present = x in d print "'%s' in %s: %s" % (x, name, present) if present: print "%s['%s']: %s" % (name, 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']) d.clear() printifpresent(d, ['b', 'c', 'd', 'e', 'f']) # Now test dicts that aren't full. d = util.lrucachedict(4) d['a'] = 1 d['b'] = 2 d['a'] d['b'] printifpresent(d, ['a', 'b']) # test copy method d = util.lrucachedict(4) d['a'] = 'va3' d['b'] = 'vb3' d['c'] = 'vc3' d['d'] = 'vd3' dc = d.copy() # all of these should be present print "\nAll of these should be present:" printifpresent(dc, ['a', 'b', 'c', 'd'], 'dc') # 'a' should be dropped because it was least recently used print "\nAll of these except 'a' should be present:" dc['e'] = 've3' printifpresent(dc, ['a', 'b', 'c', 'd', 'e'], 'dc') # contents and order of original dict should remain unchanged print "\nThese should be in reverse alphabetical order and read 'v?3':" dc['b'] = 'vb3_new' for k in list(iter(d)): print "d['%s']: %s" % (k, d[k]) if __name__ == '__main__': test_lrucachedict()