mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
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
This commit is contained in:
parent
ade0233d57
commit
e8583833a7
1 changed files with 19 additions and 11 deletions
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue