diff options
author | Cédric Ollivier <cedric.ollivier@orange.com> | 2017-05-18 17:26:49 +0200 |
---|---|---|
committer | Cédric Ollivier <cedric.ollivier@orange.com> | 2017-05-18 17:28:53 +0200 |
commit | 48fcc87bde9b62d2464f823ec9d39a530c974441 (patch) | |
tree | 09dfda20d2013cc8bf7ddb236b2267410d3981bb | |
parent | 59d4e9757e52f452a67bbce48c2ebafc431f4cb1 (diff) |
Use StringIO in odl.py
It avoids creating and removing the temporary file to dump robot output.
Change-Id: Ia5ea66e76ffb8b8327f2da938f177e8ef4c61dd4
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
-rwxr-xr-x | functest/opnfv_tests/sdn/odl/odl.py | 18 | ||||
-rw-r--r-- | functest/tests/unit/odl/test_odl.py | 40 |
2 files changed, 5 insertions, 53 deletions
diff --git a/functest/opnfv_tests/sdn/odl/odl.py b/functest/opnfv_tests/sdn/odl/odl.py index 6f586b7a..2f3dd74b 100755 --- a/functest/opnfv_tests/sdn/odl/odl.py +++ b/functest/opnfv_tests/sdn/odl/odl.py @@ -30,6 +30,7 @@ import robot.api from robot.errors import RobotError import robot.run from robot.utils.robottime import timestamp_to_secs +from six import StringIO from six.moves import urllib from functest.core import testcase @@ -172,16 +173,11 @@ class ODLTests(testcase.TestCase): self.__logger.exception( "Cannot create %s", self.res_dir) return self.EX_RUN_ERROR - stdout_file = os.path.join(self.res_dir, 'stdout.txt') output_dir = os.path.join(self.res_dir, 'output.xml') - with open(stdout_file, 'w+') as stdout: - robot.run(*suites, variable=variables, - output=output_dir, - log='NONE', - report='NONE', - stdout=stdout) - stdout.seek(0, 0) - self.__logger.info("\n" + stdout.read()) + stream = StringIO() + robot.run(*suites, variable=variables, output=output_dir, + log='NONE', report='NONE', stdout=stream) + self.__logger.info("\n" + stream.getvalue()) self.__logger.info("ODL results were successfully generated") try: self.parse_results() @@ -190,10 +186,6 @@ class ODLTests(testcase.TestCase): self.__logger.error("Run tests before publishing: %s", ex.message) return self.EX_RUN_ERROR - try: - os.remove(stdout_file) - except OSError: - self.__logger.warning("Cannot remove %s", stdout_file) return self.EX_OK else: return self.EX_RUN_ERROR diff --git a/functest/tests/unit/odl/test_odl.py b/functest/tests/unit/odl/test_odl.py index e2778e24..6e2e9b1d 100644 --- a/functest/tests/unit/odl/test_odl.py +++ b/functest/tests/unit/odl/test_odl.py @@ -312,8 +312,6 @@ class ODLMainTesting(ODLTesting): def test_run_ko(self, *args): with mock.patch.object(self.test, 'set_robotframework_vars', return_value=True), \ - mock.patch.object(odl, 'open', mock.mock_open(), - create=True), \ self.assertRaises(RobotError): self._test_main(testcase.TestCase.EX_RUN_ERROR, *args) @@ -322,71 +320,33 @@ class ODLMainTesting(ODLTesting): def test_parse_results_ko(self, *args): with mock.patch.object(self.test, 'set_robotframework_vars', return_value=True), \ - mock.patch.object(odl, 'open', mock.mock_open(), - create=True), \ mock.patch.object(self.test, 'parse_results', side_effect=RobotError): self._test_main(testcase.TestCase.EX_RUN_ERROR, *args) - @mock.patch('os.remove', side_effect=Exception) - @mock.patch('robot.run') - @mock.patch('os.makedirs') - def test_remove_exc(self, *args): - with mock.patch.object(self.test, 'set_robotframework_vars', - return_value=True), \ - mock.patch.object(self.test, 'parse_results'), \ - self.assertRaises(Exception): - self._test_main(testcase.TestCase.EX_OK, *args) - - @mock.patch('os.remove') @mock.patch('robot.run') @mock.patch('os.makedirs') def test_ok(self, *args): with mock.patch.object(self.test, 'set_robotframework_vars', return_value=True), \ - mock.patch.object(odl, 'open', mock.mock_open(), - create=True), \ mock.patch.object(self.test, 'parse_results'): self._test_main(testcase.TestCase.EX_OK, *args) - @mock.patch('os.remove') @mock.patch('robot.run') @mock.patch('os.makedirs', side_effect=OSError(errno.EEXIST, '')) def test_makedirs_oserror17(self, *args): with mock.patch.object(self.test, 'set_robotframework_vars', return_value=True), \ - mock.patch.object(odl, 'open', mock.mock_open(), - create=True) as mock_open, \ mock.patch.object(self.test, 'parse_results'): self._test_main(testcase.TestCase.EX_OK, *args) - mock_open.assert_called_once_with( - os.path.join(odl.ODLTests.res_dir, 'stdout.txt'), 'w+') - @mock.patch('os.remove') @mock.patch('robot.run', return_value=1) @mock.patch('os.makedirs') def test_testcases_in_failure(self, *args): with mock.patch.object(self.test, 'set_robotframework_vars', return_value=True), \ - mock.patch.object(odl, 'open', mock.mock_open(), - create=True) as mock_open, \ - mock.patch.object(self.test, 'parse_results'): - self._test_main(testcase.TestCase.EX_OK, *args) - mock_open.assert_called_once_with( - os.path.join(odl.ODLTests.res_dir, 'stdout.txt'), 'w+') - - @mock.patch('os.remove', side_effect=OSError) - @mock.patch('robot.run') - @mock.patch('os.makedirs') - def test_remove_oserror(self, *args): - with mock.patch.object(self.test, 'set_robotframework_vars', - return_value=True), \ - mock.patch.object(odl, 'open', mock.mock_open(), - create=True) as mock_open, \ mock.patch.object(self.test, 'parse_results'): self._test_main(testcase.TestCase.EX_OK, *args) - mock_open.assert_called_once_with( - os.path.join(odl.ODLTests.res_dir, 'stdout.txt'), 'w+') class ODLRunTesting(ODLTesting): |