Import TestCasesBase from functest dir
[functest.git] / core / TestCasesBaseTesting.py
1 #!/usr/bin/env python
2
3 import logging
4 import mock
5 import unittest
6
7 from functest.core import TestCasesBase
8
9
10 class TestCasesBaseTesting(unittest.TestCase):
11
12     logging.disable(logging.CRITICAL)
13
14     def setUp(self):
15         self.test = TestCasesBase.TestCasesBase()
16         self.test.project = "functest"
17         self.test.case_name = "base"
18         self.test.start_time = "1"
19         self.test.stop_time = "2"
20         self.test.criteria = "100"
21         self.test.details = {"Hello":  "World"}
22
23     def test_run_unimplemented(self):
24         self.assertEqual(self.test.run(),
25                          TestCasesBase.TestCasesBase.EX_RUN_ERROR)
26
27     @mock.patch('functest.utils.functest_utils.push_results_to_db',
28                 return_value=False)
29     def _test_missing_attribute(self, mock_function):
30         self.assertEqual(self.test.push_to_db(),
31                          TestCasesBase.TestCasesBase.EX_PUSH_TO_DB_ERROR)
32         mock_function.assert_not_called()
33
34     def test_missing_case_name(self):
35         self.test.case_name = None
36         self._test_missing_attribute()
37
38     def test_missing_criteria(self):
39         self.test.criteria = None
40         self._test_missing_attribute()
41
42     def test_missing_start_time(self):
43         self.test.start_time = None
44         self._test_missing_attribute()
45
46     def test_missing_stop_time(self):
47         self.test.stop_time = None
48         self._test_missing_attribute()
49
50     @mock.patch('functest.utils.functest_utils.push_results_to_db',
51                 return_value=True)
52     def test_missing_details(self, mock_function):
53         self.test.details = None
54         self.assertEqual(self.test.push_to_db(),
55                          TestCasesBase.TestCasesBase.EX_OK)
56         mock_function.assert_called_once_with(
57             self.test.project, self.test.case_name, self.test.start_time,
58             self.test.stop_time, self.test.criteria, self.test.details)
59
60     @mock.patch('functest.utils.functest_utils.push_results_to_db',
61                 return_value=False)
62     def test_push_to_db_failed(self, mock_function):
63         self.assertEqual(self.test.push_to_db(),
64                          TestCasesBase.TestCasesBase.EX_PUSH_TO_DB_ERROR)
65         mock_function.assert_called_once_with(
66             self.test.project, self.test.case_name, self.test.start_time,
67             self.test.stop_time, self.test.criteria, self.test.details)
68
69     @mock.patch('functest.utils.functest_utils.push_results_to_db',
70                 return_value=True)
71     def test_push_to_db(self, mock_function):
72         self.assertEqual(self.test.push_to_db(),
73                          TestCasesBase.TestCasesBase.EX_OK)
74         mock_function.assert_called_once_with(
75             self.test.project, self.test.case_name, self.test.start_time,
76             self.test.stop_time, self.test.criteria, self.test.details)
77
78
79 if __name__ == "__main__":
80     unittest.main(verbosity=2)