tests/test-duplicateoptions.py
author Pierre-Yves David <pierre-yves.david@fb.com>
Wed, 27 May 2015 06:52:23 -0700
changeset 25371 fbcbdc62f248
parent 20622 352abbb0be88
child 28739 d289b8847f23
permissions -rw-r--r--
test: use bundle2 in test-http-proxy The proxy test does not care about what protocol is used, but the new protocol implies different traffic (and therefore different log output). We switch it to bundle2 early to minimise the noise of using bundle2 for exchange by default.

import os
from mercurial import ui, commands, extensions

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 = ui.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])