Remove OSGCTestCase
[functest.git] / functest / core / testcase.py
index 6246554..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,26 @@ 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:
+            assert self.project_name
+            assert self.case_name
+            result = 'PASS' if(self.is_successful(
+                ) == TestCase.EX_OK) else 'FAIL'
+            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 super(TestCase, self).__str__()
 
     def get_duration(self):
         """Return the duration of the test case.
@@ -57,7 +77,7 @@ class TestCase(object):
                 return "XX:XX"
             return "{0[0]:02.0f}:{0[1]:02.0f}".format(divmod(
                 self.stop_time - self.start_time, 60))
-        except Exception:
+        except Exception:  # pylint: disable=broad-except
             self.__logger.error("Please run test before getting the duration")
             return "XX:XX"
 
@@ -75,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:
@@ -155,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.
+        """