Mercurial > hg
view tests/test-config-env.py @ 48522:b52cf5063865 stable
heptapod-ci: make Windows jobs manual again
The dance continues, we make the Windows tests optional once again since we
don't have Windows runners available anymore. We're working on getting new ones
in a more stable fashion, hopefully soon.
Differential Revision: https://phab.mercurial-scm.org/D11957
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Mon, 03 Jan 2022 10:43:17 +0100 |
parents | 2d4cad94d08a |
children | 6000f5b25c9b |
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, extensions, rcutil, ui as uimod, util, ) from mercurial.utils import procutil testtmp = encoding.environ[b'TESTTMP'] # prepare hgrc files def join(name): return os.path.join(testtmp, name) with open(join(b'sysrc'), 'wb') as f: f.write(b'[ui]\neditor=e0\n[pager]\npager=p0\n') with open(join(b'userrc'), 'wb') as f: f.write(b'[ui]\neditor=e1') # replace rcpath functions so they point to the files above def systemrcpath(): return [join(b'sysrc')] def userrcpath(): return [join(b'userrc')] extensions.wrapfunction(rcutil, 'default_rc_resources', lambda orig: []) rcutil.systemrcpath = systemrcpath rcutil.userrcpath = userrcpath # 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) procutil.stdout.write( b'%s.%s=%s # %s\n' % (section, name, value, util.pconvert(source)) ) procutil.stdout.write(b'\n') # environment variable overrides printconfigs({}) printconfigs({b'EDITOR': b'e2', b'PAGER': b'p2'})