##// END OF EJS Templates
hghave: add "chg" flag to skip tests that can't be compatible with chg...
hghave: add "chg" flag to skip tests that can't be compatible with chg Several tests fail with chg for several reasons such as loaded chgserver extension, running uisetup() per server instead of per runcommand, etc. Since these tests can't/shouldn't be changed to be chg friendly, we need a flag to skip them. This patch explicitly drops CHGHG environment if chg isn't involved. This way, hghave can just check if CHGHG exists.

File last commit:

r28804:ce49c8d4 default
r28880:f74eed31 default
Show More
test-duplicateoptions.py
41 lines | 1.0 KiB | text/x-python | PythonLexer
/ tests / test-duplicateoptions.py
from __future__ import absolute_import, print_function
import os
from mercurial import (
commands,
extensions,
ui as uimod,
)
ignore = set(['highlight', 'win32text', 'factotum'])
if os.name != 'nt':
ignore.add('win32mbcs')
disabled = [ext for ext in extensions.disabled().keys() if ext not in ignore]
hgrc = open(os.environ["HGRCPATH"], 'w')
hgrc.write('[extensions]\n')
for ext in disabled:
hgrc.write(ext + '=\n')
hgrc.close()
u = uimod.ui()
extensions.loadall(u)
globalshort = set()
globallong = set()
for option in commands.globalopts:
option[0] and globalshort.add(option[0])
option[1] and globallong.add(option[1])
for cmd, entry in commands.table.iteritems():
seenshort = globalshort.copy()
seenlong = globallong.copy()
for option in entry[1]:
if (option[0] and option[0] in seenshort) or \
(option[1] and option[1] in seenlong):
print("command '" + cmd + "' has duplicate option " + str(option))
seenshort.add(option[0])
seenlong.add(option[1])