tests/test-duplicateoptions.py
author Siddharth Agarwal <sid0@fb.com>
Wed, 23 Dec 2015 12:41:20 -0800
changeset 27598 97e39f70fb47
parent 20622 352abbb0be88
child 28739 d289b8847f23
permissions -rw-r--r--
tests: explicitly request changed version in test-rebase-newancestor.t We're going to change the default for this in an upcoming patch, but in this instance we do want to continue picking the changed version.

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])