Merge "Add domino testcase"
[functest.git] / functest / opnfv_tests / features / domino.py
index 7705c07..b36220f 100755 (executable)
 # After successful ping, both the VMs are deleted.
 # 0.2: measure test duration and publish results under json format
 # 0.3: add report flag to push results when needed
-#
-
-import argparse
-import time
-
-import functest.utils.functest_logger as ft_logger
-import functest.utils.functest_utils as ft_utils
-
-parser = argparse.ArgumentParser()
-
-parser.add_argument("-r", "--report",
-                    help="Create json result file",
-                    action="store_true")
-args = parser.parse_args()
-
-
-DOMINO_REPO = \
-    ft_utils.get_functest_config('general.directories.dir_repo_domino')
-RESULTS_DIR = \
-    ft_utils.get_functest_config('general.directories.dir_results')
-
-logger = ft_logger.Logger("domino").getLogger()
-
-
-def main():
-    cmd = 'cd %s && ./tests/run_multinode.sh' % DOMINO_REPO
-    log_file = RESULTS_DIR + "/domino.log"
-    start_time = time.time()
-
-    ret = ft_utils.execute_command(cmd,
-                                   output_file=log_file)
-
-    stop_time = time.time()
-    duration = round(stop_time - start_time, 1)
-    if ret == 0 and duration > 1:
-        logger.info("domino OK")
-        test_status = 'OK'
-    elif ret == 0 and duration <= 1:
-        logger.info("domino TEST SKIPPED")
-        test_status = 'SKIPPED'
-    else:
-        logger.info("domino FAILED")
-        test_status = 'NOK'
-
-    details = {
-        'timestart': start_time,
-        'duration': duration,
-        'status': test_status,
-    }
-
-    status = "FAIL"
-    if details['status'] == "OK":
-        status = "PASS"
-    elif details['status'] == "SKIPPED":
-        status = "SKIP"
+# 0.4: refactoring to match Test abstraction class
 
-    ft_utils.logger_test_results("Domino",
-                                 "domino-multinode",
-                                 status,
-                                 details)
-    if args.report:
-        if status is not "SKIP":
-            ft_utils.push_results_to_db("domino",
-                                        "domino-multinode",
-                                        start_time,
-                                        stop_time,
-                                        status,
-                                        details)
-            logger.info("Domino results pushed to DB")
+import functest.core.feature_base as base
 
 
-if __name__ == '__main__':
-    main()
+class Domino(base.FeatureBase):
+    def __init__(self):
+        super(Domino, self).__init__(project='domino',
+                                     case='domino-multinode',
+                                     repo='dir_repo_domino')
+        self.cmd = 'cd %s && ./tests/run_multinode.sh' % self.repo