# HG changeset patch # User Gregory Szorc # Date 1395723148 25200 # Node ID c1dd04be3d9ab2cfcf88b87a7a82d08d4bdbe04a # Parent 57179a4bf77aeb358050323a2f3b2a4b2e15e6dd run-tests: allow option parser to be extended This patch moves the OptionParser population into its own function so consumers may modify the OptionParser before arguments are evaluated. This will allow consumers to add custom options, set different defaults, etc. diff -r 57179a4bf77a -r c1dd04be3d9a tests/run-tests.py --- a/tests/run-tests.py Mon Mar 24 21:41:56 2014 -0700 +++ b/tests/run-tests.py Mon Mar 24 21:52:28 2014 -0700 @@ -133,7 +133,7 @@ f.close() return entries -def parseargs(args): +def getparser(): parser = optparse.OptionParser("%prog [options] [tests]") # keep these sorted @@ -210,6 +210,10 @@ for option, (envvar, default) in defaults.items(): defaults[option] = type(default)(os.environ.get(envvar, default)) parser.set_defaults(**defaults) + + return parser + +def parseargs(args, parser): (options, args) = parser.parse_args(args) # jython is always pure @@ -1176,8 +1180,9 @@ testtypes = [('.py', pytest, '.out'), ('.t', tsttest, '')] -def main(args): - (options, args) = parseargs(args) +def main(args, parser=None): + parser = parser or getparser() + (options, args) = parseargs(args, parser) os.umask(022) checktools()