##// END OF EJS Templates
chgserver: invalidate the server if extensions fail to load...
chgserver: invalidate the server if extensions fail to load Previously, if extensions fail to load, chg server will just keep working without those extensions. It will print a warning message but only if a new server starts. This patch invalidates the server if any extension failed to load, but still serve the client (hopefully just) once. It will help chg pass some test cases of test-bad-extension.t.

File last commit:

r27576:6cd30449 default
r28536:a979f5b0 default
Show More
test-lrucachedict.py
70 lines | 1.7 KiB | text/x-python | PythonLexer
/ tests / test-lrucachedict.py
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()