write test results to a local file
[functest.git] / functest / tests / unit / core / test_testcase_base.py
index fe7b0d0..8df524b 100644 (file)
@@ -9,9 +9,12 @@
 
 import logging
 import mock
+import os
 import unittest
 
-import functest.core.testcase_base as testcase_base
+mock.patch('logging.FileHandler').start()  # noqa
+
+from functest.core import testcase_base
 
 
 class TestcaseBaseTesting(unittest.TestCase):
@@ -24,18 +27,19 @@ class TestcaseBaseTesting(unittest.TestCase):
         self.test.case_name = "base"
         self.test.start_time = "1"
         self.test.stop_time = "2"
-        self.test.criteria = "100"
+        self.test.criteria = "PASS"
         self.test.details = {"Hello": "World"}
 
     def test_run_unimplemented(self):
         self.assertEqual(self.test.run(),
                          testcase_base.TestcaseBase.EX_RUN_ERROR)
 
+    @mock.patch.dict(os.environ, {})
     @mock.patch('functest.utils.functest_utils.push_results_to_db',
                 return_value=False)
     def _test_missing_attribute(self, mock_function):
-        self.assertEqual(self.test.push_to_db(),
-                         testcase_base.TestcaseBase.EX_PUSH_TO_DB_ERROR)
+        self.assertEqual(self.test.publish_report(),
+                         testcase_base.TestcaseBase.EX_PUBLISH_RESULT_FAILED)
         mock_function.assert_not_called()
 
     def test_missing_case_name(self):
@@ -68,7 +72,7 @@ class TestcaseBaseTesting(unittest.TestCase):
                 return_value=False)
     def test_push_to_db_failed(self, mock_function):
         self.assertEqual(self.test.push_to_db(),
-                         testcase_base.TestcaseBase.EX_PUSH_TO_DB_ERROR)
+                         testcase_base.TestcaseBase.EX_PUBLISH_RESULT_FAILED)
         mock_function.assert_called_once_with(
             self.test.project, self.test.case_name, self.test.start_time,
             self.test.stop_time, self.test.criteria, self.test.details)
@@ -82,6 +86,21 @@ class TestcaseBaseTesting(unittest.TestCase):
             self.test.project, self.test.case_name, self.test.start_time,
             self.test.stop_time, self.test.criteria, self.test.details)
 
+    def test_check_criteria_missing(self):
+        self.test.criteria = None
+        self.assertEqual(self.test.check_criteria(),
+                         testcase_base.TestcaseBase.EX_TESTCASE_FAILED)
+
+    def test_check_criteria_failed(self):
+        self.test.criteria = 'FAILED'
+        self.assertEqual(self.test.check_criteria(),
+                         testcase_base.TestcaseBase.EX_TESTCASE_FAILED)
+
+    def test_check_criteria_pass(self):
+        self.test.criteria = 'PASS'
+        self.assertEqual(self.test.check_criteria(),
+                         testcase_base.TestcaseBase.EX_OK)
+
 
 if __name__ == "__main__":
     unittest.main(verbosity=2)