# HG changeset patch # User Idan Kamara # Date 2011-05-27 14:51:16 # Node ID 7d171c05a6312cd17c327247e2214a8ba6495ce7 # Parent 7d367e8f892dcd6009da2974b7decc64fef106ec tests: add a test to check for duplicate command options diff --git a/tests/test-duplicateoptions.py b/tests/test-duplicateoptions.py new file mode 100644 --- /dev/null +++ b/tests/test-duplicateoptions.py @@ -0,0 +1,30 @@ +import os +from mercurial import ui, commands, extensions + +ignore = set(['highlight', 'win32text']) + +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) + +for cmd, entry in commands.table.iteritems(): + seenshort = set() + seenlong = set() + 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])