diff options
author | 2015-11-09 15:34:00 +0000 | |
---|---|---|
committer | 2015-11-09 15:34:00 +0000 | |
commit | 75bfd60c5ed4053e59cb506c4284b1cc3f442bbc (patch) | |
tree | 463fc46c34a5d7e7e50f7808e590c16fcc4a43e0 /moonclient/moonclient/tests.py | |
parent | a64a1d2e7dd93b4c0e13688af0682a8ad3ee3b4b (diff) | |
parent | c1f432a46f8c6a1501133a0f18e8556246524904 (diff) |
Merge "Add 'special' test operation allowing to change authentication (name, url, ...) during test and add a shell operation in test procedure."
Diffstat (limited to 'moonclient/moonclient/tests.py')
-rw-r--r-- | moonclient/moonclient/tests.py | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/moonclient/moonclient/tests.py b/moonclient/moonclient/tests.py index a97ba61c..ea722955 100644 --- a/moonclient/moonclient/tests.py +++ b/moonclient/moonclient/tests.py @@ -68,16 +68,57 @@ class TestsLaunch(Lister): for test in tests_list: result_str = "" error_str = "" + if "auth_name" in test or "auth_password" in test or "auth_url" in test: + username = None + password = None + host = None + port = None + description = "" + if "auth_name" in test: + username = test["auth_name"] + if "auth_password" in test: + password = test["auth_password"] + if "auth_host" in test: + host = test["auth_host"] + if "auth_port" in test: + port = test["auth_port"] + if "description" in test: + description = test["description"] + self.app.auth_keystone(username, password, host, port) + title = "Change auth to " + if username: + title += username + if host: + title += "@" + host + if port: + title += ":" + port + title += "\n" + self.logfile.write(title) + self.log.info(title) + data_tmp = list() + data_tmp.append("") + data_tmp.append(title.strip()) + data_tmp.append("\033[32mOK\033[m") + data_tmp.append(description.strip()) + data.append(data_tmp) + continue data_tmp = list() tmp_filename = os.path.join("/tmp", uuid4().hex) tmp_filename_fd = open(tmp_filename, "w") self.log.debug("test={}".format(test)) if "command" not in test: - ext_command = test["external_command"] + if "external_command" in test: + ext_command = test["external_command"] + else: + ext_command = test["shell_command"] ext_command = self.__replace_var_in_str(ext_command) self.logfile.write("-----> {}\n".format(ext_command)) self.log.info(" \\-executing external \"{}\"".format(ext_command)) - pipe = subprocess.Popen(shlex.split(ext_command), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + if "external_command" in test: + pipe = subprocess.Popen(shlex.split(ext_command), stdout=subprocess.PIPE, stderr=subprocess.PIPE) + else: + # Note (asteroide): security hazard! Must reduce the possible commands here. + pipe = subprocess.Popen(ext_command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) com = pipe.communicate() result_str = com[0] error_str = com[1] @@ -104,14 +145,17 @@ class TestsLaunch(Lister): if error_str: if compare: compare = "\033[33mTrue\033[m" - overall_result = True + overall_result = overall_result and True else: compare = "\033[1m\033[31mFalse\033[m" - overall_result = False + overall_result = overall_result and False else: overall_result = overall_result and compare if compare: - compare = "\033[32mTrue\033[m" + if overall_result: + compare = "\033[32mTrue\033[m" + else: + compare = "\033[mTrue\033[m" else: compare = "\033[1m\033[31mFalse\033[m" data_tmp.append(compare) |