From e8583833a79b58c7d0c73c79866d49a463b9d301 Mon Sep 17 00:00:00 2001 From: bradobro Date: Mon, 23 Jul 2012 16:28:06 +0000 Subject: [PATCH] test-module uses optparse with --debugger Refactored hacking/test-module 1. uses optparse 2. has --debugger option tested only with pdb on Python 2.7 --- hacking/test-module | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/hacking/test-module b/hacking/test-module index 7d6567fadf1..40dad456690 100755 --- a/hacking/test-module +++ b/hacking/test-module @@ -47,14 +47,14 @@ def parse(): parser.usage = "%prog [options] (-h for help)" - parser.add_option('-m', '--module-name', dest='module_name', - help="module name to execute") + parser.add_option('-m', '--module-path', dest='module_path', + help="path of module to execute") parser.add_option('-a', '--args', dest='module_args', default="", help="module arguments") parser.add_option('-D', '--debugger', dest='debugger', help="path to python debugger (e.g. /usr/bin/pdb)") options, args = parser.parse_args() - if not options.module_name: + if not options.module_path: parser.print_help() sys.exit(1) else: @@ -90,14 +90,8 @@ def boilerplate_module( modfile): print "* module boilerplate substitution not requested in module, line numbers will be unaltered" return modfile -def main(): - options, args = parse() - - argspath = write_argsfile( options.module_args) - modfile = boilerplate_module( options.module_name) - print argspath, modfile - sys.exit(0) - #===== run or debug the module +def runtest( modfile, argspath): + """Test run a module, piping it's output for reporting.""" os.system("chmod +x %s" % modfile) cmd = subprocess.Popen("%s %s" % (modfile, argspath), shell=True, @@ -124,6 +118,20 @@ def main(): print utils.jsonify(results,format=True) +def rundebug(debugger, modfile, argspath): + """Run interactively with console debugger.""" + subprocess.call( "%s %s %s" % (debugger, modfile, argspath), shell=True) + +def main(): + options, args = parse() + + argspath = write_argsfile( options.module_args) + modfile = boilerplate_module( options.module_path) + + if options.debugger: + rundebug( options.debugger, modfile, argspath) + else: + runtest( modfile, argspath) if __name__ == "__main__": main()