Enable tempest offline by use_custom_images=True
[functest.git] / functest / tests / unit / core / test_testcase.py
index 17329ea..ef0983c 100644 (file)
@@ -7,7 +7,7 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 
-"""Define the classe required to fully cover testcase."""
+"""Define the class required to fully cover testcase."""
 
 import logging
 import unittest
@@ -20,12 +20,9 @@ __author__ = "Cedric Ollivier <cedric.ollivier@orange.com>"
 
 
 class TestCaseTesting(unittest.TestCase):
-
     """The class testing TestCase."""
     # pylint: disable=missing-docstring,too-many-public-methods
 
-    logging.disable(logging.CRITICAL)
-
     _case_name = "base"
     _project_name = "functest"
     _published_result = "PASS"
@@ -189,6 +186,42 @@ class TestCaseTesting(unittest.TestCase):
         self.test.stop_time = 180
         self.assertEqual(self.test.get_duration(), "02:59")
 
+    def test_str_project_name_ko(self):
+        self.test.project_name = None
+        self.assertIn("<functest.core.testcase.TestCase object at",
+                      str(self.test))
+
+    def test_str_case_name_ko(self):
+        self.test.case_name = None
+        self.assertIn("<functest.core.testcase.TestCase object at",
+                      str(self.test))
+
+    def test_str_pass(self):
+        duration = '01:01'
+        with mock.patch.object(self.test, 'get_duration',
+                               return_value=duration), \
+                mock.patch.object(self.test, 'is_successful',
+                                  return_value=testcase.TestCase.EX_OK):
+            message = str(self.test)
+        self.assertIn(self._project_name, message)
+        self.assertIn(self._case_name, message)
+        self.assertIn(duration, message)
+        self.assertIn('PASS', message)
+
+    def test_str_fail(self):
+        duration = '00:59'
+        with mock.patch.object(self.test, 'get_duration',
+                               return_value=duration), \
+                mock.patch.object(
+                    self.test, 'is_successful',
+                    return_value=testcase.TestCase.EX_TESTCASE_FAILED):
+            message = str(self.test)
+        self.assertIn(self._project_name, message)
+        self.assertIn(self._case_name, message)
+        self.assertIn(duration, message)
+        self.assertIn('FAIL', message)
+
 
 if __name__ == "__main__":
+    logging.disable(logging.CRITICAL)
     unittest.main(verbosity=2)