diff options
author | Michael DeHaan <michael@ansibleworks.com> | 2013-10-31 16:52:37 -0400 |
---|---|---|
committer | Michael DeHaan <michael@ansibleworks.com> | 2013-10-31 16:53:05 -0400 |
commit | d34a26e30729c39c83dba4a46203c5c100a3eaeb (patch) | |
tree | 800b8b1660f5b527d1bbdbc5a3a4144f4c5d7860 /hacking/test-module | |
parent | affa703fcbccd68a624ed7d10511435feed583fa (diff) | |
download | ansible-d34a26e30729c39c83dba4a46203c5c100a3eaeb.tar.gz |
Undo an inadvertant revert from template changes so we still allow pythonic imports in module land.
Diffstat (limited to 'hacking/test-module')
-rwxr-xr-x | hacking/test-module | 68 |
1 files changed, 31 insertions, 37 deletions
diff --git a/hacking/test-module b/hacking/test-module index ef75eb3d91..24c04900b2 100755 --- a/hacking/test-module +++ b/hacking/test-module @@ -77,39 +77,32 @@ def write_argsfile(argstring, json=False): def boilerplate_module(modfile, args): """ simulate what ansible does with new style modules """ - module_fh = open(modfile) - module_data = module_fh.read() - included_boilerplate = module_data.find(module_common.REPLACER) != -1 - module_fh.close() - - if included_boilerplate: - - module_data = module_data.replace(module_common.REPLACER, module_common.MODULE_COMMON) - encoded_args = repr(str(args)) - module_data = module_data.replace(module_common.REPLACER_ARGS, encoded_args) - encoded_lang = repr(C.DEFAULT_MODULE_LANG) - empty_complex = repr("{}") - module_data = module_data.replace(module_common.REPLACER_LANG, encoded_lang) - module_data = module_data.replace('syslog.LOG_USER', "syslog.%s" % C.DEFAULT_SYSLOG_FACILITY) - module_data = module_data.replace(module_common.REPLACER_COMPLEX, empty_complex) - - modfile2_path = os.path.expanduser("~/.ansible_module_generated") - print "* including generated source, if any, saving to: %s" % modfile2_path - print "* this will offset any line numbers in tracebacks/debuggers!" - modfile2 = open(modfile2_path, 'w') - modfile2.write(module_data) - modfile2.close() - modfile = modfile2_path - - return (modfile2_path, included_boilerplate, False) - else: + #module_fh = open(modfile) + #module_data = module_fh.read() + #module_fh.close() + + replacer = module_common.ModuleReplacer() + + #included_boilerplate = module_data.find(module_common.REPLACER) != -1 or module_data.find("import ansible.module_utils") != -1 + + complex_args = {} + inject = {} + (module_data, module_style, shebang) = replacer.modify_module( + modfile, + complex_args, + args, + inject + ) - old_style_but_json = False - if 'WANT_JSON' in module_data: - old_style_but_json = True + modfile2_path = os.path.expanduser("~/.ansible_module_generated") + print "* including generated source, if any, saving to: %s" % modfile2_path + print "* this may offset any line numbers in tracebacks/debuggers!" + modfile2 = open(modfile2_path, 'w') + modfile2.write(module_data) + modfile2.close() + modfile = modfile2_path - print "* module boilerplate substitution not requested in module, line numbers will be unaltered" - return (modfile, included_boilerplate, old_style_but_json) + return (modfile2_path, module_style) def runtest( modfile, argspath): """Test run a module, piping it's output for reporting.""" @@ -151,20 +144,21 @@ def rundebug(debugger, modfile, argspath): def main(): options, args = parse() - (modfile, is_new_style, old_style_but_json) = boilerplate_module(options.module_path, options.module_args) + (modfile, module_style) = boilerplate_module(options.module_path, options.module_args) argspath=None - if not is_new_style: - if old_style_but_json: + if module_style != 'new': + if module_style == 'non_native_want_json': argspath = write_argsfile(options.module_args, json=True) - else: + elif module_style == 'old': argspath = write_argsfile(options.module_args, json=False) + else: + raise Exception("internal error, unexpected module style: %s" % module_style) if options.debugger: rundebug(options.debugger, modfile, argspath) else: runtest(modfile, argspath) - + if __name__ == "__main__": main() - |