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
14 from functest.core import testcase_base
17 class TestcaseBaseTesting(unittest.TestCase):
19 logging.disable(logging.CRITICAL)
22 self.test = testcase_base.TestcaseBase()
23 self.test.project = "functest"
24 self.test.case_name = "base"
25 self.test.start_time = "1"
26 self.test.stop_time = "2"
27 self.test.criteria = "PASS"
28 self.test.details = {"Hello": "World"}
30 def test_run_unimplemented(self):
31 self.assertEqual(self.test.run(),
32 testcase_base.TestcaseBase.EX_RUN_ERROR)
34 @mock.patch('functest.utils.functest_utils.push_results_to_db',
36 def _test_missing_attribute(self, mock_function):
37 self.assertEqual(self.test.push_to_db(),
38 testcase_base.TestcaseBase.EX_PUSH_TO_DB_ERROR)
39 mock_function.assert_not_called()
41 def test_missing_case_name(self):
42 self.test.case_name = None
43 self._test_missing_attribute()
45 def test_missing_criteria(self):
46 self.test.criteria = None
47 self._test_missing_attribute()
49 def test_missing_start_time(self):
50 self.test.start_time = None
51 self._test_missing_attribute()
53 def test_missing_stop_time(self):
54 self.test.stop_time = None
55 self._test_missing_attribute()
57 @mock.patch('functest.utils.functest_utils.push_results_to_db',
59 def test_missing_details(self, mock_function):
60 self.test.details = None
61 self.assertEqual(self.test.push_to_db(),
62 testcase_base.TestcaseBase.EX_OK)
63 mock_function.assert_called_once_with(
64 self.test.project, self.test.case_name, self.test.start_time,
65 self.test.stop_time, self.test.criteria, self.test.details)
67 @mock.patch('functest.utils.functest_utils.push_results_to_db',
69 def test_push_to_db_failed(self, mock_function):
70 self.assertEqual(self.test.push_to_db(),
71 testcase_base.TestcaseBase.EX_PUSH_TO_DB_ERROR)
72 mock_function.assert_called_once_with(
73 self.test.project, self.test.case_name, self.test.start_time,
74 self.test.stop_time, self.test.criteria, self.test.details)
76 @mock.patch('functest.utils.functest_utils.push_results_to_db',
78 def test_push_to_db(self, mock_function):
79 self.assertEqual(self.test.push_to_db(),
80 testcase_base.TestcaseBase.EX_OK)
81 mock_function.assert_called_once_with(
82 self.test.project, self.test.case_name, self.test.start_time,
83 self.test.stop_time, self.test.criteria, self.test.details)
85 def test_check_criteria_missing(self):
86 self.test.criteria = None
87 self.assertEqual(self.test.check_criteria(),
88 testcase_base.TestcaseBase.EX_TESTCASE_FAILED)
90 def test_check_criteria_failed(self):
91 self.test.criteria = 'FAILED'
92 self.assertEqual(self.test.check_criteria(),
93 testcase_base.TestcaseBase.EX_TESTCASE_FAILED)
95 def test_check_criteria_pass(self):
96 self.test.criteria = 'PASS'
97 self.assertEqual(self.test.check_criteria(),
98 testcase_base.TestcaseBase.EX_OK)
101 if __name__ == "__main__":
102 unittest.main(verbosity=2)