Remove OSGCTestCase
[functest.git] / functest / core / testcase.py
index b220a58..ae0da9d 100644 (file)
@@ -14,6 +14,9 @@ import os
 
 import functest.utils.functest_utils as ft_utils
 
+import prettytable
+
+
 __author__ = "Cedric Ollivier <cedric.ollivier@orange.com>"
 
 
@@ -39,9 +42,9 @@ class TestCase(object):
         self.project_name = kwargs.get('project_name', 'functest')
         self.case_name = kwargs.get('case_name', '')
         self.criteria = kwargs.get('criteria', 100)
-        self.result = ""
-        self.start_time = ""
-        self.stop_time = ""
+        self.result = 0
+        self.start_time = 0
+        self.stop_time = 0
 
     def __str__(self):
         try:
@@ -49,14 +52,16 @@ class TestCase(object):
             assert self.case_name
             result = 'PASS' if(self.is_successful(
                 ) == TestCase.EX_OK) else 'FAIL'
-            return ('| {0:<23} | {1:<13} | {2:<10} | {3:<13} |'
-                    '\n{4:-<26}{4:-<16}{4:-<13}{4:-<16}{4}'.format(
-                        self.case_name, self.project_name,
-                        self.get_duration(), result, '+'))
+            msg = prettytable.PrettyTable(
+                header_style='upper', padding_width=5,
+                field_names=['test case', 'project', 'duration',
+                             'result'])
+            msg.add_row([self.case_name, self.project_name,
+                         self.get_duration(), result])
+            return msg.get_string()
         except AssertionError:
             self.__logger.error("We cannot print invalid objects")
-            return '| {0:^68} |\n{1:-<26}{1:-<16}{1:-<13}{1:-<16}{1}'.format(
-                'INVALID OBJECT', '+')
+            return super(TestCase, self).__str__()
 
     def get_duration(self):
         """Return the duration of the test case.
@@ -90,7 +95,9 @@ class TestCase(object):
         """
         try:
             assert self.criteria
-            if isinstance(self.result, int) and isinstance(self.criteria, int):
+            assert self.result is not None
+            if (not isinstance(self.result, str) and
+                    not isinstance(self.criteria, str)):
                 if self.result >= self.criteria:
                     return TestCase.EX_OK
             else:
@@ -170,3 +177,21 @@ class TestCase(object):
         except Exception:  # pylint: disable=broad-except
             self.__logger.exception("The results cannot be pushed to DB")
             return TestCase.EX_PUSH_TO_DB_ERROR
+
+    def create_snapshot(self):  # pylint: disable=no-self-use
+        """Save the testing environment before running test.
+
+        It can be overriden if resources must be listed running the
+        test case.
+
+        Returns:
+            TestCase.EX_OK
+        """
+        return TestCase.EX_OK
+
+    def clean(self):
+        """Clean the resources.
+
+        It can be overriden if resources must be deleted after
+        running the test case.
+        """