'(examples: /path/to/test.json, /path/to/directory/, '
'"/path/to/*-file.json" -- don\'t forget the quote)',
)
+ parser.add_argument(
+ '--logfile',
+ metavar='<logfile-str>',
+ help='Force Log filename.',
+ default=None
+ )
return parser
def __replace_var_in_str(self, data_str):
return False
def take_action(self, parsed_args):
+ if parsed_args.logfile:
+ self.logfile_name = parsed_args.logfile
self.log.info("Write tests output to {}".format(self.logfile_name))
if parsed_args.self:
import sys
)
def test_file(self, testfile):
- self.logfile_name = "/tmp/moonclient_test_{}.log".format(time.strftime("%Y%m%d-%H%M%S"))
- self.logfile = open(self.logfile_name, "w")
+ if not self.logfile_name:
+ self.logfile_name = "/tmp/moonclient_test_{}.log".format(time.strftime("%Y%m%d-%H%M%S"))
+ self.logfile = open(self.logfile_name, "a")
+ self.logfile.write(80*"=" + "\n")
+ self.logfile.write(testfile + "\n\n")
stdout_back = self.app.stdout
tests_dict = json.load(open(testfile))
self.log.debug("tests_dict = {}".format(tests_dict))
else:
command = test["command"] + " " + global_command_options
command = self.__replace_var_in_str(command)
- self.logfile.write(time.strftime(self.TIME_FORMAT) + " " + "-----> {}\n".format(command))
+ self.logfile.write(time.strftime(self.TIME_FORMAT) + " " +
+ test["name"] + " " +
+ "-----> {}\n".format(command))
self.log.info(" \\-executing {}".format(command))
self.app.stdout = tmp_filename_fd
result_id = self.app.run_subcommand(shlex.split(command))
"description": "Upload the Cirros image in glance"
},
{
- "name": "nova image-list",
+ "name": "openstack image list",
"external_command": "nova image-list",
"result": "(?P<uuid_image>[\\w-]+)\\s+\\| cirros",
"description": "Get an Image ID"
},
{
"name": "add_subject",
- "command": "subject add admin --subject_pass nomoresecrete",
+ "command": "subject add admin --subject_pass console",
"result": "",
"description": "",
"command_options": ""
{
"name": "add_subject",
- "command": "subject add admin --subject_pass nomoresecrete",
+ "command": "subject add admin --subject_pass console",
"result": "",
"description": "Add admin subject.",
"command_options": ""
{
"auth_name": "demo",
"auth_password": "console",
- "auth_tenant": "admin",
+ "auth_tenant": "demo",
"description": "Change user to demo"
},
def test_moon_openstack():
- cmd = "moon test --password console --self"
+ log_filename = "moonclient_selftest.log"
+ cmd = "moon test --password console --self --logfile {}".format(log_filename)
- ret_val = functest_utils.execute_command(cmd, logger)
+ ret_val = functest_utils.execute_command(cmd, exit_on_error=False)
- return ret_val
+ return ret_val, open(log_filename, "rt").read()
def main():
else:
logger.info("OS MOON ERROR")
test_status = 'FAIL'
+ logger.info("Errors from OpenStack tests:")
+ logger.info(result_os[1])
+ logger.info("Errors from Federation tests:")
+ logger.info(result_odl[1])
details = {
'timestart': start_time,