# HG changeset patch # User Gregory Szorc # Date 1395723148 25200 # Node ID 51476d2dcab1cbf37064bcf4e1bb2fe0a22003f0 # Parent 772a53435e1483ced63e4ac93597db3dc402f02a 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. [ original upstream message ] diff -r 772a53435e14 -r 51476d2dcab1 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()