[virt-tools-list] [virt-bootstrap] [PATCH v5 10/11] tests: Add unit tests for "progress" module
Radostin Stoyanov
rstoyanov1 at gmail.com
Mon Jul 24 08:14:10 UTC 2017
---
tests/test_progress.py | 115 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 115 insertions(+)
create mode 100644 tests/test_progress.py
diff --git a/tests/test_progress.py b/tests/test_progress.py
new file mode 100644
index 0000000..8c1d078
--- /dev/null
+++ b/tests/test_progress.py
@@ -0,0 +1,115 @@
+# Authors:
+# Cedric Bosdonnat <cbosdonnat at suse.com>
+# Radostin Stoyanov <rstoyanov1 at gmail.com>
+#
+# Copyright (C) 2017 SUSE, Inc.
+# Copyright (C) 2017 Radostin Stoyanov
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+"""
+Unit tests for methods defined in virtBootstrap.progress
+"""
+
+from tests import unittest
+from tests import mock
+from tests import progress
+
+
+# pylint: disable=invalid-name
+class TestFileSource(unittest.TestCase):
+ """
+ Test cases for Progress module
+ """
+
+ ###################################
+ # Tests for: __init__()
+ ###################################
+ def test_progress_init(self):
+ """
+ Ensures that __init__() assigns the collback value to instance
+ variable and creates dictionary with 'status', 'value' keys.
+ """
+ callback = mock.Mock()
+ test_instance = progress.Progress(callback)
+ for key in ['status', 'value']:
+ self.assertIn(key, test_instance.progress)
+ self.assertIs(callback, test_instance.callback)
+
+ ###################################
+ # Tests for: get_progress()
+ ###################################
+ def test_get_progress(self):
+ """
+ Ensures that get_progress() returns copy of the progress dictionary
+ which has the same keys and values.
+ """
+ test_instance = progress.Progress()
+ test_result = test_instance.get_progress()
+ self.assertIsNot(test_instance.progress, test_result)
+ self.assertDictEqual(test_instance.progress, test_result)
+
+ ###################################
+ # Tests for: update_progress()
+ ###################################
+ def test_update_progress_creates_log_record(self):
+ """
+ Ensures that update_progress() creates log record with info level
+ and pass the status value as message.
+ """
+ test_instance = progress.Progress()
+ logger = mock.Mock()
+ status = "Test"
+ test_instance.update_progress(status=status, logger=logger)
+ logger.info.assert_called_once_with(status)
+
+ def test_update_progress_update_status_and_value(self):
+ """
+ Ensures that update_progress() creates log record with info level
+ and pass the status value as message.
+ """
+ test_instance = progress.Progress()
+ test_instance.progress = {'status': '', 'value': 0}
+ new_status = 'Test'
+ new_value = 100
+ new_progress = {'status': new_status, 'value': new_value}
+ test_instance.update_progress(status=new_status, value=new_value)
+ self.assertDictEqual(test_instance.progress, new_progress)
+
+ def test_update_progress_update_raise_logger_error(self):
+ """
+ Ensures that update_progress() raise ValueError when creating
+ log record has failed.
+ """
+ msg = 'test'
+ test_instance = progress.Progress()
+ logger = mock.Mock()
+ logger.info.side_effect = Exception(msg)
+ with self.assertRaises(ValueError) as err:
+ test_instance.update_progress(logger=logger)
+ self.assertIn(msg, str(err.exception))
+
+ def test_update_progress_update_raise_callback_error(self):
+ """
+ Ensures that update_progress() raise ValueError when calling
+ callback failed.
+ """
+ msg = 'test'
+ callback = mock.Mock()
+ callback.side_effect = Exception(msg)
+ test_instance = progress.Progress(callback)
+ with self.assertRaises(ValueError) as err:
+ test_instance.update_progress('foo', 'bar')
+ self.assertIn(msg, str(err.exception))
--
2.9.4
More information about the virt-tools-list
mailing list