##// END OF EJS Templates
py3: implement __bytes__ for committablectx...
py3: implement __bytes__ for committablectx Before this method, calling bytes on workingctx or memctx calls basectx.__bytes__ since the magic method was not defined for this class. When it calls the method from basectx class, it returns TypeError because None is passed into it. After this commit `hg update -C` works on Python 3 if eol is not enabled.

File last commit:

r29828:79add5a4 default
r32643:1df98fc9 default
Show More
test-lrucachedict.py
77 lines | 1.9 KiB | text/x-python | PythonLexer
/ tests / test-lrucachedict.py
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 from __future__ import absolute_import, print_function
Pulkit Goyal
tests: make test-lrucachedict use absolute_import
r28930
from mercurial import (
util,
)
Siddharth Agarwal
util: add an LRU cache dict...
r18603
Eric Sumner
lrucachedict: add copy method...
r27576 def printifpresent(d, xs, name='d'):
Siddharth Agarwal
util: add an LRU cache dict...
r18603 for x in xs:
present = x in d
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("'%s' in %s: %s" % (x, name, present))
Siddharth Agarwal
util: add an LRU cache dict...
r18603 if present:
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("%s['%s']: %s" % (name, x, d[x]))
Siddharth Agarwal
util: add an LRU cache dict...
r18603
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'])
Gregory Szorc
util: properly implement lrucachedict.get()...
r29828 assert d.get('a') is None
assert d.get('e') == 've'
Siddharth Agarwal
util: add an LRU cache dict...
r18603 # 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'])
Siddharth Agarwal
lrucachedict: implement clear()
r19710 d.clear()
printifpresent(d, ['b', 'c', 'd', 'e', 'f'])
Gregory Szorc
util: reimplement lrucachedict...
r27371 # 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'])
Eric Sumner
lrucachedict: add copy method...
r27576 # 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
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("\nAll of these should be present:")
Eric Sumner
lrucachedict: add copy method...
r27576 printifpresent(dc, ['a', 'b', 'c', 'd'], 'dc')
# 'a' should be dropped because it was least recently used
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("\nAll of these except 'a' should be present:")
Eric Sumner
lrucachedict: add copy method...
r27576 dc['e'] = 've3'
printifpresent(dc, ['a', 'b', 'c', 'd', 'e'], 'dc')
# contents and order of original dict should remain unchanged
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("\nThese should be in reverse alphabetical order and read 'v?3':")
Eric Sumner
lrucachedict: add copy method...
r27576 dc['b'] = 'vb3_new'
for k in list(iter(d)):
Pulkit Goyal
tests: make test-lrucachedict use print_function
r28931 print("d['%s']: %s" % (k, d[k]))
Eric Sumner
lrucachedict: add copy method...
r27576
Siddharth Agarwal
util: add an LRU cache dict...
r18603 if __name__ == '__main__':
test_lrucachedict()