Merge "Documentation for unit test project"
[functest.git] / functest / tests / unit / core / test_pytest_suite_runner.py
1 #!/usr/bin/env python
2
3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
7
8 # pylint: disable=missing-docstring
9
10 import logging
11 import unittest
12
13 import mock
14
15 from functest.core import pytest_suite_runner
16 from functest.core import testcase
17
18
19 class PyTestSuiteRunnerTesting(unittest.TestCase):
20
21     logging.disable(logging.CRITICAL)
22
23     def setUp(self):
24         self.psrunner = pytest_suite_runner.PyTestSuiteRunner()
25         self.result = mock.Mock()
26         attrs = {'errors': [('test1', 'error_msg1')],
27                  'failures': [('test2', 'failure_msg1')]}
28         self.result.configure_mock(**attrs)
29
30         self.pass_results = mock.Mock()
31         attrs = {'errors': None,
32                  'failures': None}
33         self.pass_results.configure_mock(**attrs)
34
35     def test_run(self):
36         self.psrunner.case_name = 'test_case_name'
37         with mock.patch('functest.core.pytest_suite_runner.'
38                         'unittest.TextTestRunner.run',
39                         return_value=self.result):
40             self.assertEqual(self.psrunner.run(),
41                              testcase.TestCase.EX_OK)
42
43         with mock.patch('functest.core.pytest_suite_runner.'
44                         'unittest.TextTestRunner.run',
45                         return_value=self.pass_results):
46             self.assertEqual(self.psrunner.run(),
47                              testcase.TestCase.EX_OK)
48
49
50 if __name__ == "__main__":
51     unittest.main(verbosity=2)