Fix "TypeError: format requires a mapping" in waiters
This is to fix the "TypeError: format requires a mapping" in wait_for_image_imported_to_stores and wait_for_image_copied_to_stores. Change-Id: I8a33bd4f4ea189ce9247dfecec1e53001682b870
This commit is contained in:
parent
805f2a070b
commit
414ffbacb7
|
@ -207,8 +207,8 @@ def wait_for_image_imported_to_stores(client, image_id, stores):
|
|||
|
||||
time.sleep(client.build_interval)
|
||||
|
||||
message = ('Image %(image_id)s failed to import '
|
||||
'on stores: %s' % str(image['os_glance_failed_import']))
|
||||
message = ('Image %s failed to import on stores: %s' %
|
||||
(image_id, str(image['os_glance_failed_import'])))
|
||||
caller = test_utils.find_test_caller()
|
||||
if caller:
|
||||
message = '(%s) %s' % (caller, message)
|
||||
|
@ -238,8 +238,8 @@ def wait_for_image_copied_to_stores(client, image_id):
|
|||
|
||||
time.sleep(client.build_interval)
|
||||
|
||||
message = ('Image %(image_id)s failed to finish the copy operation '
|
||||
'on stores: %s' % str(store_left))
|
||||
message = ('Image %s failed to finish the copy operation '
|
||||
'on stores: %s' % (image_id, str(store_left)))
|
||||
caller = test_utils.find_test_caller()
|
||||
if caller:
|
||||
message = '(%s) %s' % (caller, message)
|
||||
|
|
|
@ -55,6 +55,56 @@ class TestImageWaiters(base.TestCase):
|
|||
waiters.wait_for_image_status,
|
||||
self.client, 'fake_image_id', 'active')
|
||||
|
||||
def test_wait_for_image_imported_to_stores(self):
|
||||
self.client.show_image.return_value = ({'status': 'active',
|
||||
'stores': 'fake_store'})
|
||||
start_time = int(time.time())
|
||||
waiters.wait_for_image_imported_to_stores(
|
||||
self.client, 'fake_image_id', 'fake_store')
|
||||
end_time = int(time.time())
|
||||
# Ensure waiter returns before build_timeout
|
||||
self.assertLess((end_time - start_time), 10)
|
||||
|
||||
def test_wait_for_image_imported_to_stores_timeout(self):
|
||||
time_mock = self.patch('time.time')
|
||||
client = mock.MagicMock()
|
||||
client.build_timeout = 2
|
||||
self.patch('time.time', side_effect=[0., 1., 2.])
|
||||
time_mock.side_effect = utils.generate_timeout_series(1)
|
||||
|
||||
client.show_image.return_value = ({
|
||||
'status': 'saving',
|
||||
'stores': 'fake_store',
|
||||
'os_glance_failed_import': 'fake_os_glance_failed_import'})
|
||||
self.assertRaises(lib_exc.TimeoutException,
|
||||
waiters.wait_for_image_imported_to_stores,
|
||||
client, 'fake_image_id', 'fake_store')
|
||||
|
||||
def test_wait_for_image_copied_to_stores(self):
|
||||
self.client.show_image.return_value = ({
|
||||
'status': 'active',
|
||||
'os_glance_importing_to_stores': '',
|
||||
'os_glance_failed_import': 'fake_os_glance_failed_import'})
|
||||
start_time = int(time.time())
|
||||
waiters.wait_for_image_copied_to_stores(
|
||||
self.client, 'fake_image_id')
|
||||
end_time = int(time.time())
|
||||
# Ensure waiter returns before build_timeout
|
||||
self.assertLess((end_time - start_time), 10)
|
||||
|
||||
def test_wait_for_image_copied_to_stores_timeout(self):
|
||||
time_mock = self.patch('time.time')
|
||||
self.patch('time.time', side_effect=[0., 1.])
|
||||
time_mock.side_effect = utils.generate_timeout_series(1)
|
||||
|
||||
self.client.show_image.return_value = ({
|
||||
'status': 'active',
|
||||
'os_glance_importing_to_stores': 'processing',
|
||||
'os_glance_failed_import': 'fake_os_glance_failed_import'})
|
||||
self.assertRaises(lib_exc.TimeoutException,
|
||||
waiters.wait_for_image_copied_to_stores,
|
||||
self.client, 'fake_image_id')
|
||||
|
||||
|
||||
class TestInterfaceWaiters(base.TestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue