3 # Copyright (c) 2016 Orange and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
15 mock.patch('logging.FileHandler').start() # noqa
17 from functest.core import testcase_base
20 class TestcaseBaseTesting(unittest.TestCase):
22 logging.disable(logging.CRITICAL)
25 self.test = testcase_base.TestcaseBase()
26 self.test.project = "functest"
27 self.test.case_name = "base"
28 self.test.start_time = "1"
29 self.test.stop_time = "2"
30 self.test.criteria = "PASS"
31 self.test.details = {"Hello": "World"}
33 def test_run_unimplemented(self):
34 self.assertEqual(self.test.run(),
35 testcase_base.TestcaseBase.EX_RUN_ERROR)
37 @mock.patch.dict(os.environ, {})
38 @mock.patch('functest.utils.functest_utils.push_results_to_db',
40 def _test_missing_attribute(self, mock_function):
41 self.assertEqual(self.test.publish_report(),
42 testcase_base.TestcaseBase.EX_PUBLISH_RESULT_FAILED)
43 mock_function.assert_not_called()
45 def test_missing_case_name(self):
46 self.test.case_name = None
47 self._test_missing_attribute()
49 def test_missing_criteria(self):
50 self.test.criteria = None
51 self._test_missing_attribute()
53 def test_missing_start_time(self):
54 self.test.start_time = None
55 self._test_missing_attribute()
57 def test_missing_stop_time(self):
58 self.test.stop_time = None
59 self._test_missing_attribute()
61 @mock.patch('functest.utils.functest_utils.push_results_to_db',
63 def test_missing_details(self, mock_function):
64 self.test.details = None
65 self.assertEqual(self.test.push_to_db(),
66 testcase_base.TestcaseBase.EX_OK)
67 mock_function.assert_called_once_with(
68 self.test.project, self.test.case_name, self.test.start_time,
69 self.test.stop_time, self.test.criteria, self.test.details)
71 @mock.patch('functest.utils.functest_utils.push_results_to_db',
73 def test_push_to_db_failed(self, mock_function):
74 self.assertEqual(self.test.push_to_db(),
75 testcase_base.TestcaseBase.EX_PUBLISH_RESULT_FAILED)
76 mock_function.assert_called_once_with(
77 self.test.project, self.test.case_name, self.test.start_time,
78 self.test.stop_time, self.test.criteria, self.test.details)
80 @mock.patch('functest.utils.functest_utils.push_results_to_db',
82 def test_push_to_db(self, mock_function):
83 self.assertEqual(self.test.push_to_db(),
84 testcase_base.TestcaseBase.EX_OK)
85 mock_function.assert_called_once_with(
86 self.test.project, self.test.case_name, self.test.start_time,
87 self.test.stop_time, self.test.criteria, self.test.details)
89 def test_check_criteria_missing(self):
90 self.test.criteria = None
91 self.assertEqual(self.test.check_criteria(),
92 testcase_base.TestcaseBase.EX_TESTCASE_FAILED)
94 def test_check_criteria_failed(self):
95 self.test.criteria = 'FAILED'
96 self.assertEqual(self.test.check_criteria(),
97 testcase_base.TestcaseBase.EX_TESTCASE_FAILED)
99 def test_check_criteria_pass(self):
100 self.test.criteria = 'PASS'
101 self.assertEqual(self.test.check_criteria(),
102 testcase_base.TestcaseBase.EX_OK)
105 if __name__ == "__main__":
106 unittest.main(verbosity=2)