diff options
| author | Jenkins <jenkins@review.openstack.org> | 2015-06-01 20:07:27 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2015-06-01 20:07:27 +0000 |
| commit | 4d57e9f62a6d49fb7114ea718dda166f349d9341 (patch) | |
| tree | 1d89091f385113f1771806a8e436f65a26bbfed6 /openstackclient/tests/common | |
| parent | 40634c3f2cec4c23e2123b3ff5cdc447f26cf977 (diff) | |
| parent | 224d375ef4120998dc51fbf55f1778d1ccf118a0 (diff) | |
| download | python-openstackclient-4d57e9f62a6d49fb7114ea718dda166f349d9341.tar.gz | |
Merge "Add --wait to server delete"
Diffstat (limited to 'openstackclient/tests/common')
| -rw-r--r-- | openstackclient/tests/common/test_utils.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/openstackclient/tests/common/test_utils.py b/openstackclient/tests/common/test_utils.py index cda0b135..d9f5b7a5 100644 --- a/openstackclient/tests/common/test_utils.py +++ b/openstackclient/tests/common/test_utils.py @@ -13,6 +13,9 @@ # under the License. # +import time +import uuid + import mock from openstackclient.common import exceptions @@ -120,6 +123,42 @@ class TestUtils(test_utils.TestCase): utils.sort_items, items, sort_str) + @mock.patch.object(time, 'sleep') + def test_wait_for_delete_ok(self, mock_sleep): + # Tests the normal flow that the resource is deleted with a 404 coming + # back on the 2nd iteration of the wait loop. + resource = mock.MagicMock(status='ACTIVE', progress=None) + mock_get = mock.Mock(side_effect=[resource, + exceptions.NotFound(404)]) + manager = mock.MagicMock(get=mock_get) + res_id = str(uuid.uuid4()) + callback = mock.Mock() + self.assertTrue(utils.wait_for_delete(manager, res_id, + callback=callback)) + mock_sleep.assert_called_once_with(5) + callback.assert_called_once_with(0) + + @mock.patch.object(time, 'sleep') + def test_wait_for_delete_timeout(self, mock_sleep): + # Tests that we fail if the resource is not deleted before the timeout. + resource = mock.MagicMock(status='ACTIVE') + mock_get = mock.Mock(return_value=resource) + manager = mock.MagicMock(get=mock_get) + res_id = str(uuid.uuid4()) + self.assertFalse(utils.wait_for_delete(manager, res_id, sleep_time=1, + timeout=1)) + mock_sleep.assert_called_once_with(1) + + @mock.patch.object(time, 'sleep') + def test_wait_for_delete_error(self, mock_sleep): + # Tests that we fail if the resource goes to error state while waiting. + resource = mock.MagicMock(status='ERROR') + mock_get = mock.Mock(return_value=resource) + manager = mock.MagicMock(get=mock_get) + res_id = str(uuid.uuid4()) + self.assertFalse(utils.wait_for_delete(manager, res_id)) + self.assertFalse(mock_sleep.called) + class NoUniqueMatch(Exception): pass |
