Mercurial > hg
view tests/test-config-env.py @ 31763:8a0c47982ade
test-revlog-raw: fix "genbits" implementation
The "genbits" implementation is actually incorrect. This patch fixes it. A
good "genbits" implementation should pass the below assertion:
n = 3 # or other number
l = list(genbits(n))
assert 2**(n*2) == len(set((l[i]<<n)+l[i+1] for i in range(len(l)-1)))
An assertion is added to make sure "genbits" won't work unexpectedly.
author | Jun Wu <quark@fb.com> |
---|---|
date | Sun, 02 Apr 2017 18:12:47 -0700 |
parents | d83e51654c8a |
children | 08fbc97d1364 |
line wrap: on
line source
# Test the config layer generated by environment variables from __future__ import absolute_import, print_function import os from mercurial import ( encoding, rcutil, ui as uimod, ) testtmp = encoding.environ['TESTTMP'] # prepare hgrc files def join(name): return os.path.join(testtmp, name) with open(join('sysrc'), 'w') as f: f.write('[ui]\neditor=e0\n[pager]\npager=p0\n') with open(join('userrc'), 'w') as f: f.write('[ui]\neditor=e1') # replace rcpath functions so they point to the files above def systemrcpath(): return [join('sysrc')] def userrcpath(): return [join('userrc')] rcutil.systemrcpath = systemrcpath rcutil.userrcpath = userrcpath os.path.isdir = lambda x: False # hack: do not load default.d/*.rc # utility to print configs def printconfigs(env): encoding.environ = env rcutil._rccomponents = None # reset cache ui = uimod.ui.load() for section, name, value in ui.walkconfig(): source = ui.configsource(section, name) print('%s.%s=%s # %s' % (section, name, value, source)) print('') # environment variable overrides printconfigs({}) printconfigs({'EDITOR': 'e2', 'PAGER': 'p2'})