diff options
Diffstat (limited to 'dovetail/test_runner.py')
-rw-r--r-- | dovetail/test_runner.py | 42 |
1 files changed, 31 insertions, 11 deletions
diff --git a/dovetail/test_runner.py b/dovetail/test_runner.py index 603156fe..d2697f6d 100644 --- a/dovetail/test_runner.py +++ b/dovetail/test_runner.py @@ -82,17 +82,13 @@ class DockerRunner(object): exist_file_name): return - if not self.testcase.prepared(): - prepare_failed = False - cmds = self.testcase.pre_condition() - if cmds: - for cmd in cmds: - ret, msg = Container.exec_cmd(container_id, cmd) - if ret != 0: - prepare_failed = True - break - if not prepare_failed: - self.testcase.prepared(True) + cmds = self.testcase.pre_condition() + if cmds: + for cmd in cmds: + ret, msg = Container.exec_cmd(container_id, cmd) + if ret != 0: + self.logger.error("Failed to exec all pre_condition cmds.") + break if not self.testcase.prepare_cmd(self.type): self.logger.error( @@ -113,6 +109,9 @@ class DockerRunner(object): Container.clean(container_id, self.type) + def save_logs(self): + pass + class FunctestRunner(DockerRunner): @@ -120,6 +119,27 @@ class FunctestRunner(DockerRunner): self.type = 'functest' super(FunctestRunner, self).__init__(testcase) + def save_logs(self): + validate_testcase = self.testcase.validate_testcase() + test_area = self.testcase.name().split(".")[1] + result_path = os.path.join(os.environ["DOVETAIL_HOME"], 'results') + dest_path = os.path.join(result_path, test_area + '_logs') + dest_file = os.path.join(dest_path, self.testcase.name() + '.log') + if validate_testcase == 'tempest_custom': + source_file = os.path.join(result_path, 'tempest', 'tempest.log') + elif validate_testcase == 'refstack_defcore': + source_file = os.path.join(result_path, 'refstack', 'refstack.log') + elif validate_testcase == 'bgpvpn': + source_file = os.path.join(result_path, 'bgpvpn.log') + else: + source_file = None + if source_file: + if os.path.isfile(source_file): + os.renames(source_file, dest_file) + else: + self.logger.error("Tempest log file for test case {} is not " + "found.".format(self.testcase.name())) + class YardstickRunner(DockerRunner): |