Merge "tests: Use consistent shortcut to fake image client"

This commit is contained in:
Zuul 2023-09-06 12:26:00 +00:00 committed by Gerrit Code Review
commit 6ae38b2888
15 changed files with 301 additions and 359 deletions

View File

@ -167,6 +167,7 @@ class TestComputev2(network_fakes.FakeClientMixin, utils.TestCommand):
)
self.app.client_manager.image = mock.Mock()
self.image_client = self.app.client_manager.image
self.app.client_manager.volume = volume_fakes.FakeVolumeClient(
endpoint=fakes.AUTH_URL,

View File

@ -92,16 +92,6 @@ class TestServer(compute_fakes.TestComputev2):
self.flavors_mock = self.app.client_manager.compute.flavors
self.flavors_mock.reset_mock()
# Get a shortcut to the image client ImageManager Mock
self.images_mock = self.app.client_manager.image.images
self.images_mock.reset_mock()
self.find_image_mock = self.app.client_manager.image.find_image
self.find_image_mock.reset_mock()
self.get_image_mock = self.app.client_manager.image.get_image
self.get_image_mock.reset_mock()
# Get a shortcut to the volume client VolumeManager Mock
self.volumes_mock = self.app.client_manager.volume.volumes
self.volumes_mock.reset_mock()
@ -1375,8 +1365,8 @@ class TestServerCreate(TestServer):
self.servers_mock.create.return_value = self.new_server
self.image = image_fakes.create_one_image()
self.find_image_mock.return_value = self.image
self.get_image_mock.return_value = self.image
self.image_client.find_image.return_value = self.image
self.image_client.get_image.return_value = self.image
self.flavor = compute_fakes.create_one_flavor()
self.flavors_mock.get.return_value = self.flavor
@ -1452,7 +1442,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_options(self):
@ -3444,7 +3434,7 @@ class TestServerCreate(TestServer):
}
_image = image_fakes.create_one_image(image_info)
self.images_mock.return_value = [_image]
self.image_client.images.return_value = [_image]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -3500,7 +3490,7 @@ class TestServerCreate(TestServer):
'hw_disk_bus': 'ide',
}
_image = image_fakes.create_one_image(image_info)
self.images_mock.return_value = [_image]
self.image_client.images.return_value = [_image]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -3557,7 +3547,7 @@ class TestServerCreate(TestServer):
}
_image = image_fakes.create_one_image(image_info)
self.images_mock.return_value = [_image]
self.image_client.images.return_value = [_image]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -3589,7 +3579,7 @@ class TestServerCreate(TestServer):
target_image = image_fakes.create_one_image(image_info)
another_image = image_fakes.create_one_image({})
self.images_mock.return_value = [target_image, another_image]
self.image_client.images.return_value = [target_image, another_image]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@ -3893,7 +3883,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_description_api_older(self):
@ -3975,7 +3965,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_tag_pre_v252(self):
@ -4063,7 +4053,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_host_pre_v274(self):
@ -4147,7 +4137,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_hypervisor_hostname_pre_v274(self):
@ -4235,7 +4225,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_hostname_v290(self):
@ -4286,7 +4276,7 @@ class TestServerCreate(TestServer):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_hostname_pre_v290(self):
@ -4366,7 +4356,7 @@ class TestServerCreate(TestServer):
)
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist(), data)
self.assertFalse(self.images_mock.called)
self.assertFalse(self.image_client.images.called)
self.assertFalse(self.flavors_mock.called)
def test_server_create_with_trusted_image_cert_prev263(self):
@ -4714,9 +4704,8 @@ class _TestServerList(TestServer):
self.image = image_fakes.create_one_image()
# self.images_mock.return_value = [self.image]
self.find_image_mock.return_value = self.image
self.get_image_mock.return_value = self.image
self.image_client.find_image.return_value = self.image
self.image_client.get_image.return_value = self.image
self.flavor = compute_fakes.create_one_flavor()
self.sdk_client.find_flavor.return_value = self.flavor
@ -4735,7 +4724,7 @@ class TestServerList(_TestServerList):
super(TestServerList, self).setUp()
Image = collections.namedtuple('Image', 'id name')
self.images_mock.return_value = [
self.image_client.images.return_value = [
Image(id=s.image['id'], name=self.image.name)
# Image will be an empty string if boot-from-volume
for s in self.servers
@ -4774,11 +4763,11 @@ class TestServerList(_TestServerList):
columns, data = self.cmd.take_action(parsed_args)
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_called()
self.image_client.images.assert_called()
self.sdk_client.flavors.assert_called()
# we did not pass image or flavor, so gets on those must be absent
self.assertFalse(self.flavors_mock.get.call_count)
self.assertFalse(self.get_image_mock.call_count)
self.assertFalse(self.image_client.get_image.call_count)
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, tuple(data))
@ -4796,7 +4785,7 @@ class TestServerList(_TestServerList):
columns, data = self.cmd.take_action(parsed_args)
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_not_called()
self.image_client.images.assert_not_called()
self.sdk_client.flavors.assert_not_called()
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, tuple(data))
@ -4833,7 +4822,7 @@ class TestServerList(_TestServerList):
columns, data = self.cmd.take_action(parsed_args)
self.sdk_client.servers.assert_called_with(**self.kwargs)
image_ids = {s.image['id'] for s in self.servers if s.image}
self.images_mock.assert_called_once_with(
self.image_client.images.assert_called_once_with(
id=f'in:{",".join(image_ids)}',
)
self.sdk_client.flavors.assert_called_once_with(is_public=None)
@ -4913,7 +4902,7 @@ class TestServerList(_TestServerList):
columns, data = self.cmd.take_action(parsed_args)
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_not_called()
self.image_client.images.assert_not_called()
self.sdk_client.flavors.assert_not_called()
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, tuple(data))
@ -4944,7 +4933,7 @@ class TestServerList(_TestServerList):
columns, data = self.cmd.take_action(parsed_args)
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_not_called()
self.image_client.images.assert_not_called()
self.sdk_client.flavors.assert_not_called()
self.assertEqual(self.columns, columns)
self.assertEqual(self.data, tuple(data))
@ -4961,9 +4950,9 @@ class TestServerList(_TestServerList):
columns, data = self.cmd.take_action(parsed_args)
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_not_called()
self.image_client.images.assert_not_called()
self.sdk_client.flavors.assert_not_called()
self.get_image_mock.assert_called()
self.image_client.get_image.assert_called()
self.sdk_client.find_flavor.assert_called()
self.assertEqual(self.columns, columns)
@ -4976,13 +4965,13 @@ class TestServerList(_TestServerList):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.find_image_mock.assert_called_with(
self.image_client.find_image.assert_called_with(
self.image.id, ignore_missing=False
)
self.kwargs['image'] = self.image.id
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_not_called()
self.image_client.images.assert_not_called()
self.sdk_client.flavors.assert_called_once()
self.assertEqual(self.columns, columns)
@ -5001,7 +4990,7 @@ class TestServerList(_TestServerList):
self.kwargs['flavor'] = self.flavor.id
self.sdk_client.servers.assert_called_with(**self.kwargs)
self.images_mock.assert_called_once()
self.image_client.images.assert_called_once()
self.sdk_client.flavors.assert_not_called()
self.assertEqual(self.columns, columns)
@ -5326,7 +5315,7 @@ class TestServerList(_TestServerList):
# Make sure the returned image and flavor IDs match the servers.
Image = collections.namedtuple('Image', 'id name')
self.images_mock.return_value = [
self.image_client.images.return_value = [
Image(id=s.image['id'], name=self.image.name)
# Image will be an empty string if boot-from-volume
for s in servers
@ -5409,7 +5398,7 @@ class TestServerListV273(_TestServerList):
self.sdk_client.servers.return_value = self.servers
Image = collections.namedtuple('Image', 'id name')
self.images_mock.return_value = [
self.image_client.images.return_value = [
Image(id=s.image['id'], name=self.image.name)
# Image will be an empty string if boot-from-volume
for s in self.servers
@ -6172,7 +6161,7 @@ class TestServerRebuild(TestServer):
# Return value for utils.find_resource for image
self.image = image_fakes.create_one_image()
self.get_image_mock.return_value = self.image
self.image_client.get_image.return_value = self.image
# Fake the rebuilt new server.
attrs = {
@ -6200,7 +6189,7 @@ class TestServerRebuild(TestServer):
def test_rebuild_with_image_name(self):
image_name = 'my-custom-image'
user_image = image_fakes.create_one_image(attrs={'name': image_name})
self.find_image_mock.return_value = user_image
self.image_client.find_image.return_value = user_image
attrs = {
'image': {'id': user_image.id},
@ -6218,10 +6207,10 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.find_image_mock.assert_called_with(
self.image_client.find_image.assert_called_with(
image_name, ignore_missing=False
)
self.get_image_mock.assert_called_with(user_image.id)
self.image_client.get_image.assert_called_with(user_image.id)
self.server.rebuild.assert_called_with(user_image, None)
def test_rebuild_with_current_image(self):
@ -6235,8 +6224,8 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.find_image_mock.assert_not_called()
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.find_image.assert_not_called()
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None)
def test_rebuild_with_volume_backed_server_no_image(self):
@ -6274,7 +6263,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None, name=name)
def test_rebuild_with_preserve_ephemeral(self):
@ -6292,7 +6281,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, preserve_ephemeral=True
)
@ -6312,7 +6301,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, preserve_ephemeral=False
)
@ -6327,7 +6316,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, password)
def test_rebuild_with_description(self):
@ -6343,7 +6332,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, description=description
)
@ -6388,7 +6377,7 @@ class TestServerRebuild(TestServer):
)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None)
@mock.patch.object(common_utils, 'wait_for_status', return_value=False)
@ -6413,7 +6402,7 @@ class TestServerRebuild(TestServer):
)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None)
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
@ -6443,7 +6432,7 @@ class TestServerRebuild(TestServer):
)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None)
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
@ -6473,7 +6462,7 @@ class TestServerRebuild(TestServer):
)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None)
def test_rebuild_wrong_status_fails(self):
@ -6491,7 +6480,7 @@ class TestServerRebuild(TestServer):
)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_not_called()
def test_rebuild_with_property(self):
@ -6513,7 +6502,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, meta=expected_properties
)
@ -6538,7 +6527,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, key_name=self.server.key_name
)
@ -6581,7 +6570,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None, key_name=None)
def test_rebuild_with_keypair_name_and_unset(self):
@ -6634,7 +6623,7 @@ class TestServerRebuild(TestServer):
mock_file.close.assert_called_with()
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image,
None,
@ -6679,7 +6668,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(self.image, None, userdata=None)
def test_rebuild_with_no_user_data_pre_v254(self):
@ -6733,7 +6722,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, trusted_image_certificates=['foo', 'bar']
)
@ -6777,7 +6766,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, trusted_image_certificates=None
)
@ -6813,7 +6802,7 @@ class TestServerRebuild(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.get_image_mock.assert_called_with(self.image.id)
self.image_client.get_image.assert_called_with(self.image.id)
self.server.rebuild.assert_called_with(
self.image, None, hostname='new-hostname'
)
@ -6841,7 +6830,7 @@ class TestServerRebuildVolumeBacked(TestServer):
super().setUp()
self.new_image = image_fakes.create_one_image()
self.find_image_mock.return_value = self.new_image
self.image_client.find_image.return_value = self.new_image
attrs = {
'image': '',
@ -6939,9 +6928,10 @@ class TestServerRebuildVolumeBacked(TestServer):
class TestEvacuateServer(TestServer):
def setUp(self):
super(TestEvacuateServer, self).setUp()
# Return value for utils.find_resource for image
self.image = image_fakes.create_one_image()
self.images_mock.get.return_value = self.image
self.image_client.get_image.return_value = self.image
# Fake the rebuilt new server.
attrs = {
@ -7137,7 +7127,7 @@ class TestServerRescue(TestServer):
# Return value for utils.find_resource for image
self.image = image_fakes.create_one_image()
self.get_image_mock.return_value = self.image
self.image_client.get_image.return_value = self.image
new_server = compute_fakes.create_one_server()
attrs = {
@ -7178,7 +7168,7 @@ class TestServerRescue(TestServer):
def test_rescue_with_new_image(self):
new_image = image_fakes.create_one_image()
self.find_image_mock.return_value = new_image
self.image_client.find_image.return_value = new_image
arglist = [
'--image',
new_image.id,
@ -7194,7 +7184,7 @@ class TestServerRescue(TestServer):
self.cmd.take_action(parsed_args)
self.servers_mock.get.assert_called_with(self.server.id)
self.find_image_mock.assert_called_with(new_image.id)
self.image_client.find_image.assert_called_with(new_image.id)
self.server.rescue.assert_called_with(image=new_image, password=None)
def test_rescue_with_current_image_and_password(self):
@ -8278,7 +8268,7 @@ class TestServerShow(TestServer):
# This is the return value for utils.find_resource()
self.sdk_client.get_server.return_value = self.server
self.get_image_mock.return_value = self.image
self.image_client.get_image.return_value = self.image
self.flavors_mock.get.return_value = self.flavor
# Get the command object to test
@ -9119,7 +9109,7 @@ class TestServerGeneral(TestServer):
}
_server = compute_fakes.create_one_server(attrs=server_info)
find_resource.side_effect = [_server, _flavor]
self.get_image_mock.return_value = _image
self.image_client.get_image.return_value = _image
# Prepare result data.
info = {
@ -9139,7 +9129,7 @@ class TestServerGeneral(TestServer):
# Call _prep_server_detail().
server_detail = server._prep_server_detail(
self.app.client_manager.compute,
self.app.client_manager.image,
self.image_client,
_server,
)
# 'networks' is used to create _server. Remove it.

View File

@ -31,10 +31,6 @@ class TestServerBackup(compute_fakes.TestComputev2):
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.sdk_client = self.app.client_manager.sdk_connection.compute
# Get a shortcut to the image client ImageManager Mock
self.images_mock = self.app.client_manager.image
self.images_mock.find_image.reset_mock()
# Set object attributes to be tested. Could be overwritten in subclass.
self.attrs = {}
@ -102,8 +98,7 @@ class TestServerBackupCreate(TestServerBackup):
count=count,
)
# self.images_mock.get = mock.Mock(side_effect=images)
self.images_mock.find_image = mock.Mock(side_effect=images)
self.image_client.find_image = mock.Mock(side_effect=images)
return images
def test_server_backup_defaults(self):
@ -177,7 +172,7 @@ class TestServerBackupCreate(TestServerBackup):
def test_server_backup_wait_fail(self, mock_wait_for_status):
servers = self.setup_servers_mock(count=1)
images = self.setup_images_mock(count=1, servers=servers)
self.images_mock.get_image = mock.Mock(
self.image_client.get_image = mock.Mock(
side_effect=images[0],
)
@ -211,7 +206,7 @@ class TestServerBackupCreate(TestServerBackup):
)
mock_wait_for_status.assert_called_once_with(
self.images_mock.get_image, images[0].id, callback=mock.ANY
self.image_client.get_image, images[0].id, callback=mock.ANY
)
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
@ -219,7 +214,7 @@ class TestServerBackupCreate(TestServerBackup):
servers = self.setup_servers_mock(count=1)
images = self.setup_images_mock(count=1, servers=servers)
self.images_mock.get_image = mock.Mock(
self.image_client.get_image = mock.Mock(
side_effect=images[0],
)
@ -252,7 +247,7 @@ class TestServerBackupCreate(TestServerBackup):
)
mock_wait_for_status.assert_called_once_with(
self.images_mock.get_image, images[0].id, callback=mock.ANY
self.image_client.get_image, images[0].id, callback=mock.ANY
)
self.assertEqual(self.image_columns(images[0]), columns)

View File

@ -30,10 +30,6 @@ class TestServerImage(compute_fakes.TestComputev2):
self.app.client_manager.sdk_connection.compute = mock.Mock()
self.sdk_client = self.app.client_manager.sdk_connection.compute
# Get a shortcut to the image client ImageManager Mock
self.images_mock = self.app.client_manager.image
self.images_mock.find_image.reset_mock()
# Set object attributes to be tested. Could be overwritten in subclass.
self.attrs = {}
@ -100,7 +96,7 @@ class TestServerImageCreate(TestServerImage):
count=count,
)
self.images_mock.find_image = mock.Mock(side_effect=images)
self.image_client.find_image = mock.Mock(side_effect=images)
self.sdk_client.create_server_image = mock.Mock(
return_value=images[0],
)
@ -192,7 +188,7 @@ class TestServerImageCreate(TestServerImage):
)
mock_wait_for_status.assert_called_once_with(
self.images_mock.get_image, images[0].id, callback=mock.ANY
self.image_client.get_image, images[0].id, callback=mock.ANY
)
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
@ -222,7 +218,7 @@ class TestServerImageCreate(TestServerImage):
)
mock_wait_for_status.assert_called_once_with(
self.images_mock.get_image, images[0].id, callback=mock.ANY
self.image_client.get_image, images[0].id, callback=mock.ANY
)
self.assertEqual(self.image_columns(images[0]), columns)

View File

@ -27,14 +27,13 @@ class TestImagev1(utils.TestCommand):
super().setUp()
self.app.client_manager.image = mock.Mock()
self.image_client = self.app.client_manager.image
self.app.client_manager.volume = volume_fakes.FakeVolumev1Client(
endpoint=fakes.AUTH_URL,
token=fakes.AUTH_TOKEN,
)
self.client = self.app.client_manager.image
def create_one_image(attrs=None):
"""Create a fake image.

View File

@ -11,7 +11,6 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
import copy
from unittest import mock
@ -23,11 +22,7 @@ from openstackclient.tests.unit import fakes
from openstackclient.tests.unit.image.v1 import fakes as image_fakes
class TestImage(image_fakes.TestImagev1):
pass
class TestImageCreate(TestImage):
class TestImageCreate(image_fakes.TestImagev1):
new_image = image_fakes.create_one_image()
columns = (
'container_format',
@ -59,9 +54,9 @@ class TestImageCreate(TestImage):
def setUp(self):
super(TestImageCreate, self).setUp()
self.client.create_image = mock.Mock(return_value=self.new_image)
self.client.find_image = mock.Mock(return_value=self.new_image)
self.client.update_image = mock.Mock(return_image=self.new_image)
self.image_client.create_image = mock.Mock(return_value=self.new_image)
self.image_client.find_image = mock.Mock(return_value=self.new_image)
self.image_client.update_image = mock.Mock(return_image=self.new_image)
# Get the command object to test
self.cmd = image.CreateImage(self.app, None)
@ -84,14 +79,14 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
container_format=image.DEFAULT_CONTAINER_FORMAT,
disk_format=image.DEFAULT_DISK_FORMAT,
)
# Verify update() was not called, if it was show the args
self.assertEqual(self.client.update_image.call_args_list, [])
self.assertEqual(self.image_client.update_image.call_args_list, [])
self.assertEqual(self.columns, columns)
self.assertCountEqual(self.data, data)
@ -133,7 +128,7 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
container_format='ovf',
disk_format='ami',
@ -145,7 +140,7 @@ class TestImageCreate(TestImage):
)
# Verify update() was not called, if it was show the args
self.assertEqual(self.client.update_image.call_args_list, [])
self.assertEqual(self.image_client.update_image.call_args_list, [])
self.assertEqual(self.columns, columns)
self.assertCountEqual(self.data, data)
@ -190,7 +185,7 @@ class TestImageCreate(TestImage):
mock_file.close.assert_called_with()
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
container_format=image.DEFAULT_CONTAINER_FORMAT,
disk_format=image.DEFAULT_DISK_FORMAT,
@ -204,21 +199,21 @@ class TestImageCreate(TestImage):
)
# Verify update() was not called, if it was show the args
self.assertEqual(self.client.update_image.call_args_list, [])
self.assertEqual(self.image_client.update_image.call_args_list, [])
self.assertEqual(self.columns, columns)
self.assertCountEqual(self.data, data)
class TestImageDelete(TestImage):
class TestImageDelete(image_fakes.TestImagev1):
_image = image_fakes.create_one_image()
def setUp(self):
super(TestImageDelete, self).setUp()
# This is the return value for utils.find_resource()
self.client.find_image = mock.Mock(return_value=self._image)
self.client.delete_image = mock.Mock(return_value=None)
self.image_client.find_image = mock.Mock(return_value=self._image)
self.image_client.delete_image = mock.Mock(return_value=None)
# Get the command object to test
self.cmd = image.DeleteImage(self.app, None)
@ -234,11 +229,11 @@ class TestImageDelete(TestImage):
result = self.cmd.take_action(parsed_args)
self.client.delete_image.assert_called_with(self._image.id)
self.image_client.delete_image.assert_called_with(self._image.id)
self.assertIsNone(result)
class TestImageList(TestImage):
class TestImageList(image_fakes.TestImagev1):
_image = image_fakes.create_one_image()
columns = (
@ -266,8 +261,8 @@ class TestImageList(TestImage):
def setUp(self):
super(TestImageList, self).setUp()
self.client.images = mock.Mock()
self.client.images.side_effect = [
self.image_client.images = mock.Mock()
self.image_client.images.side_effect = [
[self._image],
[],
]
@ -288,7 +283,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, tuple(data))
@ -308,7 +303,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
is_public=True,
)
@ -330,7 +325,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
is_private=True,
)
@ -350,7 +345,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
collist = (
'ID',
@ -406,7 +401,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
sf_mock.assert_called_with(
[self._image],
attr='a',
@ -432,22 +427,22 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
si_mock.assert_called_with([self._image], 'name:asc')
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, tuple(data))
class TestImageSet(TestImage):
class TestImageSet(image_fakes.TestImagev1):
_image = image_fakes.create_one_image()
def setUp(self):
super(TestImageSet, self).setUp()
# This is the return value for utils.find_resource()
self.client.find_image = mock.Mock(return_value=self._image)
self.client.update_image = mock.Mock(return_value=self._image)
self.image_client.find_image = mock.Mock(return_value=self._image)
self.image_client.update_image = mock.Mock(return_value=self._image)
# Get the command object to test
self.cmd = image.SetImage(self.app, None)
@ -463,7 +458,7 @@ class TestImageSet(TestImage):
result = self.cmd.take_action(parsed_args)
self.client.update_image.assert_called_with(self._image.id, **{})
self.image_client.update_image.assert_called_with(self._image.id, **{})
self.assertIsNone(result)
def test_image_set_options(self):
@ -508,7 +503,9 @@ class TestImageSet(TestImage):
'size': 35165824,
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_bools1(self):
@ -533,7 +530,9 @@ class TestImageSet(TestImage):
'is_public': False,
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_bools2(self):
@ -558,7 +557,9 @@ class TestImageSet(TestImage):
'is_public': True,
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_properties(self):
@ -585,7 +586,9 @@ class TestImageSet(TestImage):
},
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_update_volume(self):
@ -642,7 +645,7 @@ class TestImageSet(TestImage):
'',
)
# ImageManager.update(image_id, remove_props=, **)
self.client.update_image.assert_called_with(
self.image_client.update_image.assert_called_with(
self._image.id,
name='updated_image',
volume='volly',
@ -671,11 +674,13 @@ class TestImageSet(TestImage):
'min_ram': 0,
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
class TestImageShow(TestImage):
class TestImageShow(image_fakes.TestImagev1):
_image = image_fakes.create_one_image(attrs={'size': 2000})
columns = (
'container_format',
@ -707,7 +712,7 @@ class TestImageShow(TestImage):
def setUp(self):
super(TestImageShow, self).setUp()
self.client.find_image = mock.Mock(return_value=self._image)
self.image_client.find_image = mock.Mock(return_value=self._image)
# Get the command object to test
self.cmd = image.ShowImage(self.app, None)
@ -725,7 +730,7 @@ class TestImageShow(TestImage):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.find_image.assert_called_with(
self.image_client.find_image.assert_called_with(
self._image.id,
)
@ -747,7 +752,7 @@ class TestImageShow(TestImage):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.find_image.assert_called_with(
self.image_client.find_image.assert_called_with(
self._image.id,
)

View File

@ -33,6 +33,7 @@ class TestImagev2(utils.TestCommand):
super().setUp()
self.app.client_manager.image = mock.Mock()
self.image_client = self.app.client_manager.image
self.app.client_manager.identity = identity_fakes.FakeIdentityv3Client(
endpoint=fakes.AUTH_URL,
@ -231,34 +232,6 @@ def create_tasks(attrs=None, count=2):
return tasks
class FakeMetadefNamespaceClient:
def __init__(self, **kwargs):
self.create_metadef_namespace = mock.Mock()
self.delete_metadef_namespace = mock.Mock()
self.metadef_namespaces = mock.Mock()
self.get_metadef_namespace = mock.Mock()
self.update_metadef_namespace = mock.Mock()
self.auth_token = kwargs['token']
self.management_url = kwargs['endpoint']
self.version = 2.0
class TestMetadefNamespaces(utils.TestCommand):
def setUp(self):
super().setUp()
self.app.client_manager.image = FakeMetadefNamespaceClient(
endpoint=fakes.AUTH_URL,
token=fakes.AUTH_TOKEN,
)
self.app.client_manager.identity = identity_fakes.FakeIdentityv3Client(
endpoint=fakes.AUTH_URL,
token=fakes.AUTH_TOKEN,
)
def create_one_metadef_namespace(attrs=None):
"""Create a fake MetadefNamespace member.

View File

@ -32,9 +32,6 @@ class TestImage(image_fakes.TestImagev2, volume_fakes.TestVolume):
def setUp(self):
super().setUp()
# Get shortcuts to mocked image client
self.client = self.app.client_manager.image
# Get shortcut to the Mocks in identity client
self.project_mock = self.app.client_manager.identity.projects
self.project_mock.reset_mock()
@ -61,14 +58,13 @@ class TestImageCreate(TestImage):
super().setUp()
self.new_image = image_fakes.create_one_image()
self.client.create_image.return_value = self.new_image
self.image_client.create_image.return_value = self.new_image
self.image_client.update_image.return_value = self.new_image
self.project_mock.get.return_value = self.project
self.domain_mock.get.return_value = self.domain
self.client.update_image.return_value = self.new_image
(self.expected_columns, self.expected_data) = zip(
*sorted(_image._format_image(self.new_image).items())
)
@ -92,7 +88,7 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
allow_duplicates=True,
container_format=_image.DEFAULT_CONTAINER_FORMAT,
@ -144,7 +140,7 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
allow_duplicates=True,
container_format='ovf',
@ -240,7 +236,7 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
allow_duplicates=True,
container_format=_image.DEFAULT_CONTAINER_FORMAT,
@ -276,7 +272,7 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
allow_duplicates=True,
container_format=_image.DEFAULT_CONTAINER_FORMAT,
@ -317,7 +313,7 @@ class TestImageCreate(TestImage):
columns, data = self.cmd.take_action(parsed_args)
# ImageManager.create(name=, **)
self.client.create_image.assert_called_with(
self.image_client.create_image.assert_called_with(
name=self.new_image.name,
allow_duplicates=True,
container_format=_image.DEFAULT_CONTAINER_FORMAT,
@ -439,10 +435,10 @@ class TestAddProjectToImage(TestImage):
super().setUp()
# This is the return value for utils.find_resource()
self.client.find_image.return_value = self._image
self.image_client.find_image.return_value = self._image
# Update the image_id in the MEMBER dict
self.client.add_member.return_value = self.new_member
self.image_client.add_member.return_value = self.new_member
self.project_mock.get.return_value = self.project
self.domain_mock.get.return_value = self.domain
# Get the command object to test
@ -463,7 +459,7 @@ class TestAddProjectToImage(TestImage):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.add_member.assert_called_with(
self.image_client.add_member.assert_called_with(
image=self._image.id, member_id=self.project.id
)
@ -488,7 +484,7 @@ class TestAddProjectToImage(TestImage):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.add_member.assert_called_with(
self.image_client.add_member.assert_called_with(
image=self._image.id, member_id=self.project.id
)
@ -500,7 +496,7 @@ class TestImageDelete(TestImage):
def setUp(self):
super().setUp()
self.client.delete_image.return_value = None
self.image_client.delete_image.return_value = None
# Get the command object to test
self.cmd = _image.DeleteImage(self.app, None)
@ -516,11 +512,11 @@ class TestImageDelete(TestImage):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.client.find_image.side_effect = images
self.image_client.find_image.side_effect = images
result = self.cmd.take_action(parsed_args)
self.client.delete_image.assert_called_with(
self.image_client.delete_image.assert_called_with(
images[0].id, store=parsed_args.store, ignore_missing=False
)
self.assertIsNone(result)
@ -536,11 +532,11 @@ class TestImageDelete(TestImage):
verifylist = [('images', [images[0].id]), ('store', 'store1')]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.client.find_image.side_effect = images
self.image_client.find_image.side_effect = images
result = self.cmd.take_action(parsed_args)
self.client.delete_image.assert_called_with(
self.image_client.delete_image.assert_called_with(
images[0].id, store=parsed_args.store, ignore_missing=False
)
self.assertIsNone(result)
@ -554,7 +550,7 @@ class TestImageDelete(TestImage):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.client.find_image.side_effect = images
self.image_client.find_image.side_effect = images
result = self.cmd.take_action(parsed_args)
@ -562,7 +558,7 @@ class TestImageDelete(TestImage):
mock.call(i.id, store=parsed_args.store, ignore_missing=False)
for i in images
]
self.client.delete_image.assert_has_calls(calls)
self.image_client.delete_image.assert_has_calls(calls)
self.assertIsNone(result)
def test_image_delete_from_store_without_multi_backend(self):
@ -572,9 +568,11 @@ class TestImageDelete(TestImage):
verifylist = [('images', [images[0].id]), ('store', 'store1')]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.client.find_image.side_effect = images
self.image_client.find_image.side_effect = images
self.client.delete_image.side_effect = sdk_exceptions.ResourceNotFound
self.image_client.delete_image.side_effect = (
sdk_exceptions.ResourceNotFound
)
exc = self.assertRaises(
exceptions.CommandError,
self.cmd.take_action,
@ -602,7 +600,7 @@ class TestImageDelete(TestImage):
# And fake find() to find the real network or not.
ret_find = [images[0], images[1], sdk_exceptions.ResourceNotFound()]
self.client.find_image.side_effect = ret_find
self.image_client.find_image.side_effect = ret_find
self.assertRaises(
exceptions.CommandError, self.cmd.take_action, parsed_args
@ -611,7 +609,7 @@ class TestImageDelete(TestImage):
mock.call(i.id, store=parsed_args.store, ignore_missing=False)
for i in images
]
self.client.delete_image.assert_has_calls(calls)
self.image_client.delete_image.assert_has_calls(calls)
class TestImageList(TestImage):
@ -634,7 +632,7 @@ class TestImageList(TestImage):
def setUp(self):
super().setUp()
self.client.images.side_effect = [[self._image], []]
self.image_client.images.side_effect = [[self._image], []]
# Get the command object to test
self.cmd = _image.ListImage(self.app, None)
@ -651,7 +649,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
# marker=self._image.id,
)
@ -672,7 +670,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
visibility='public',
)
@ -693,7 +691,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
visibility='private',
)
@ -714,7 +712,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
visibility='community',
)
@ -735,7 +733,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
visibility='shared',
)
@ -756,7 +754,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
visibility='all',
)
@ -776,7 +774,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
visibility='shared',
member_status='all',
)
@ -806,7 +804,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
collist = (
'ID',
@ -857,7 +855,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
sf_mock.assert_called_with(
[self._image],
attr='a',
@ -880,7 +878,7 @@ class TestImageList(TestImage):
# returns a tuple containing the column names and an iterable
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with()
self.image_client.images.assert_called_with()
si_mock.assert_called_with(
[self._image],
'name:asc',
@ -901,7 +899,7 @@ class TestImageList(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
limit=ret_limit,
paginated=False
# marker=None
@ -911,7 +909,7 @@ class TestImageList(TestImage):
self.assertEqual(ret_limit, len(tuple(data)))
def test_image_list_project_option(self):
self.client.find_image = mock.Mock(return_value=self._image)
self.image_client.find_image = mock.Mock(return_value=self._image)
arglist = [
'--project',
'nova',
@ -928,7 +926,7 @@ class TestImageList(TestImage):
@mock.patch('osc_lib.utils.find_resource')
def test_image_list_marker_option(self, fr_mock):
self.client.find_image = mock.Mock(return_value=self._image)
self.image_client.find_image = mock.Mock(return_value=self._image)
arglist = [
'--marker',
@ -940,11 +938,11 @@ class TestImageList(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
marker=self._image.id,
)
self.client.find_image.assert_called_with(
self.image_client.find_image.assert_called_with(
'graven',
ignore_missing=False,
)
@ -960,7 +958,7 @@ class TestImageList(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(
self.image_client.images.assert_called_with(
name='abc',
# marker=self._image.id
)
@ -976,7 +974,7 @@ class TestImageList(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(status='active')
self.image_client.images.assert_called_with(status='active')
def test_image_list_hidden_option(self):
arglist = [
@ -988,7 +986,7 @@ class TestImageList(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(is_hidden=True)
self.image_client.images.assert_called_with(is_hidden=True)
def test_image_list_tag_option(self):
arglist = ['--tag', 'abc', '--tag', 'cba']
@ -998,7 +996,7 @@ class TestImageList(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
self.client.images.assert_called_with(tag=['abc', 'cba'])
self.image_client.images.assert_called_with(tag=['abc', 'cba'])
class TestListImageProjects(TestImage):
@ -1021,8 +1019,8 @@ class TestListImageProjects(TestImage):
def setUp(self):
super().setUp()
self.client.find_image.return_value = self._image
self.client.members.return_value = [self.member]
self.image_client.find_image.return_value = self._image
self.image_client.members.return_value = [self.member]
self.cmd = _image.ListImageProjects(self.app, None)
@ -1033,7 +1031,7 @@ class TestListImageProjects(TestImage):
columns, data = self.cmd.take_action(parsed_args)
self.client.members.assert_called_with(image=self._image.id)
self.image_client.members.assert_called_with(image=self._image.id)
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, list(data))
@ -1048,11 +1046,11 @@ class TestRemoveProjectImage(TestImage):
self._image = image_fakes.create_one_image()
# This is the return value for utils.find_resource()
self.client.find_image.return_value = self._image
self.image_client.find_image.return_value = self._image
self.project_mock.get.return_value = self.project
self.domain_mock.get.return_value = self.domain
self.client.remove_member.return_value = None
self.image_client.remove_member.return_value = None
# Get the command object to test
self.cmd = _image.RemoveProjectImage(self.app, None)
@ -1069,11 +1067,11 @@ class TestRemoveProjectImage(TestImage):
result = self.cmd.take_action(parsed_args)
self.client.find_image.assert_called_with(
self.image_client.find_image.assert_called_with(
self._image.id, ignore_missing=False
)
self.client.remove_member.assert_called_with(
self.image_client.remove_member.assert_called_with(
member=self.project.id,
image=self._image.id,
)
@ -1095,7 +1093,7 @@ class TestRemoveProjectImage(TestImage):
result = self.cmd.take_action(parsed_args)
self.client.remove_member.assert_called_with(
self.image_client.remove_member.assert_called_with(
member=self.project.id,
image=self._image.id,
)
@ -1114,7 +1112,7 @@ class TestImageSet(TestImage):
self.domain_mock.get.return_value = self.domain
self.client.find_image.return_value = self._image
self.image_client.find_image.return_value = self._image
self.app.client_manager.auth_ref = mock.Mock(
project_id=self.project.id,
@ -1145,7 +1143,7 @@ class TestImageSet(TestImage):
'member_id': self.project.id,
}
)
self.client.update_member.return_value = membership
self.image_client.update_member.return_value = membership
arglist = [
'--accept',
@ -1156,7 +1154,7 @@ class TestImageSet(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.client.update_member.assert_called_once_with(
self.image_client.update_member.assert_called_once_with(
image=self._image.id,
member=self.app.client_manager.auth_ref.project_id,
status='accepted',
@ -1164,7 +1162,7 @@ class TestImageSet(TestImage):
# Assert that the 'update image" route is also called, in addition to
# the 'update membership' route.
self.client.update_image.assert_called_with(self._image.id)
self.image_client.update_image.assert_called_with(self._image.id)
def test_image_set_membership_option_reject(self):
membership = image_fakes.create_one_image_member(
@ -1173,7 +1171,7 @@ class TestImageSet(TestImage):
'member_id': self.project.id,
}
)
self.client.update_member.return_value = membership
self.image_client.update_member.return_value = membership
arglist = [
'--reject',
@ -1187,7 +1185,7 @@ class TestImageSet(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.client.update_member.assert_called_once_with(
self.image_client.update_member.assert_called_once_with(
image=self._image.id,
member=self.app.client_manager.auth_ref.project_id,
status='rejected',
@ -1195,7 +1193,7 @@ class TestImageSet(TestImage):
# Assert that the 'update image" route is also called, in addition to
# the 'update membership' route.
self.client.update_image.assert_called_with(self._image.id)
self.image_client.update_image.assert_called_with(self._image.id)
def test_image_set_membership_option_pending(self):
membership = image_fakes.create_one_image_member(
@ -1204,7 +1202,7 @@ class TestImageSet(TestImage):
'member_id': self.project.id,
}
)
self.client.update_member.return_value = membership
self.image_client.update_member.return_value = membership
arglist = [
'--pending',
@ -1218,7 +1216,7 @@ class TestImageSet(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.client.update_member.assert_called_once_with(
self.image_client.update_member.assert_called_once_with(
image=self._image.id,
member=self.app.client_manager.auth_ref.project_id,
status='pending',
@ -1226,7 +1224,7 @@ class TestImageSet(TestImage):
# Assert that the 'update image" route is also called, in addition to
# the 'update membership' route.
self.client.update_image.assert_called_with(self._image.id)
self.image_client.update_image.assert_called_with(self._image.id)
def test_image_set_options(self):
arglist = [
@ -1269,7 +1267,9 @@ class TestImageSet(TestImage):
'disk_format': 'vmdk',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_with_unexist_project(self):
@ -1311,7 +1311,9 @@ class TestImageSet(TestImage):
'visibility': 'private',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_bools2(self):
@ -1334,7 +1336,9 @@ class TestImageSet(TestImage):
'visibility': 'public',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_properties(self):
@ -1358,7 +1362,9 @@ class TestImageSet(TestImage):
'Beta': '2',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_fake_properties(self):
@ -1399,7 +1405,9 @@ class TestImageSet(TestImage):
'ramdisk_id': 'xyzpdq',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_tag(self):
@ -1420,7 +1428,9 @@ class TestImageSet(TestImage):
'tags': ['test-tag'],
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_activate(self):
@ -1442,11 +1452,13 @@ class TestImageSet(TestImage):
'tags': ['test-tag'],
}
self.client.reactivate_image.assert_called_with(
self.image_client.reactivate_image.assert_called_with(
self._image.id,
)
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_deactivate(self):
@ -1468,17 +1480,19 @@ class TestImageSet(TestImage):
'tags': ['test-tag'],
}
self.client.deactivate_image.assert_called_with(
self.image_client.deactivate_image.assert_called_with(
self._image.id,
)
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_tag_merge(self):
old_image = self._image
old_image['tags'] = ['old1', 'new2']
self.client.find_image.return_value = old_image
self.image_client.find_image.return_value = old_image
arglist = [
'--tag',
'test-tag',
@ -1496,7 +1510,7 @@ class TestImageSet(TestImage):
'tags': ['old1', 'new2', 'test-tag'],
}
# ImageManager.update(image, **kwargs)
a, k = self.client.update_image.call_args
a, k = self.image_client.update_image.call_args
self.assertEqual(self._image.id, a[0])
self.assertIn('tags', k)
self.assertEqual(set(kwargs['tags']), set(k['tags']))
@ -1505,7 +1519,7 @@ class TestImageSet(TestImage):
def test_image_set_tag_merge_dupe(self):
old_image = self._image
old_image['tags'] = ['old1', 'new2']
self.client.find_image.return_value = old_image
self.image_client.find_image.return_value = old_image
arglist = [
'--tag',
'old1',
@ -1523,7 +1537,7 @@ class TestImageSet(TestImage):
'tags': ['new2', 'old1'],
}
# ImageManager.update(image, **kwargs)
a, k = self.client.update_image.call_args
a, k = self.image_client.update_image.call_args
self.assertEqual(self._image.id, a[0])
self.assertIn('tags', k)
self.assertEqual(set(kwargs['tags']), set(k['tags']))
@ -1567,7 +1581,9 @@ class TestImageSet(TestImage):
'min_ram': 0,
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_hidden(self):
@ -1590,7 +1606,9 @@ class TestImageSet(TestImage):
'visibility': 'public',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
def test_image_set_unhidden(self):
@ -1613,7 +1631,9 @@ class TestImageSet(TestImage):
'visibility': 'public',
}
# ImageManager.update(image, **kwargs)
self.client.update_image.assert_called_with(self._image.id, **kwargs)
self.image_client.update_image.assert_called_with(
self._image.id, **kwargs
)
self.assertIsNone(result)
@ -1636,7 +1656,7 @@ class TestImageShow(TestImage):
def setUp(self):
super().setUp()
self.client.find_image = mock.Mock(return_value=self._data)
self.image_client.find_image = mock.Mock(return_value=self._data)
# Get the command object to test
self.cmd = _image.ShowImage(self.app, None)
@ -1654,7 +1674,7 @@ class TestImageShow(TestImage):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.find_image.assert_called_with(
self.image_client.find_image.assert_called_with(
'0f41529e-7c12-4de8-be2d-181abb825b3c', ignore_missing=False
)
@ -1662,7 +1682,7 @@ class TestImageShow(TestImage):
self.assertCountEqual(self.data, data)
def test_image_show_human_readable(self):
self.client.find_image.return_value = self.new_image
self.image_client.find_image.return_value = self.new_image
arglist = [
'--human-readable',
self.new_image.id,
@ -1677,7 +1697,7 @@ class TestImageShow(TestImage):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.find_image.assert_called_with(
self.image_client.find_image.assert_called_with(
self.new_image.id, ignore_missing=False
)
@ -1696,9 +1716,9 @@ class TestImageUnset(TestImage):
attrs['prop2'] = 'fake'
self.image = image_fakes.create_one_image(attrs)
self.client.find_image.return_value = self.image
self.client.remove_tag.return_value = self.image
self.client.update_image.return_value = self.image
self.image_client.find_image.return_value = self.image
self.image_client.remove_tag.return_value = self.image
self.image_client.update_image.return_value = self.image
# Get the command object to test
self.cmd = _image.UnsetImage(self.app, None)
@ -1728,7 +1748,7 @@ class TestImageUnset(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
self.client.remove_tag.assert_called_with(self.image.id, 'test')
self.image_client.remove_tag.assert_called_with(self.image.id, 'test')
self.assertIsNone(result)
def test_image_unset_property_option(self):
@ -1747,7 +1767,7 @@ class TestImageUnset(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
self.client.update_image.assert_called_with(
self.image_client.update_image.assert_called_with(
self.image, properties={'prop2': 'fake'}
)
@ -1772,11 +1792,11 @@ class TestImageUnset(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
result = self.cmd.take_action(parsed_args)
self.client.update_image.assert_called_with(
self.image_client.update_image.assert_called_with(
self.image, properties={'prop2': 'fake'}
)
self.client.remove_tag.assert_called_with(self.image.id, 'test')
self.image_client.remove_tag.assert_called_with(self.image.id, 'test')
self.assertIsNone(result)
@ -1786,7 +1806,7 @@ class TestImageStage(TestImage):
def setUp(self):
super().setUp()
self.client.find_image.return_value = self.image
self.image_client.find_image.return_value = self.image
self.cmd = _image.StageImage(self.app, None)
@ -1808,7 +1828,7 @@ class TestImageStage(TestImage):
self.cmd.take_action(parsed_args)
self.client.stage_image.assert_called_once_with(
self.image_client.stage_image.assert_called_once_with(
self.image,
filename=imagefile.name,
)
@ -1828,7 +1848,7 @@ class TestImageStage(TestImage):
self.cmd.take_action(parsed_args)
self.client.stage_image.assert_called_once_with(
self.image_client.stage_image.assert_called_once_with(
self.image,
data=fake_stdin,
)
@ -1846,8 +1866,8 @@ class TestImageImport(TestImage):
def setUp(self):
super().setUp()
self.client.find_image.return_value = self.image
self.client.get_import_info.return_value = self.import_info
self.image_client.find_image.return_value = self.image
self.image_client.get_import_info.return_value = self.import_info
self.cmd = _image.ImportImage(self.app, None)
@ -1863,7 +1883,7 @@ class TestImageImport(TestImage):
self.cmd.take_action(parsed_args)
self.client.import_image.assert_called_once_with(
self.image_client.import_image.assert_called_once_with(
self.image,
method='glance-direct',
uri=None,
@ -1893,7 +1913,7 @@ class TestImageImport(TestImage):
self.cmd.take_action(parsed_args)
self.client.import_image.assert_called_once_with(
self.image_client.import_image.assert_called_once_with(
self.image,
method='web-download',
uri='https://example.com/',
@ -1927,7 +1947,7 @@ class TestImageImport(TestImage):
)
self.assertIn("The '--uri' option is required ", str(exc))
self.client.import_image.assert_not_called()
self.image_client.import_image.assert_not_called()
# NOTE(stephenfin): Ditto
def test_import_image__web_download_invalid_options(self):
@ -1952,7 +1972,7 @@ class TestImageImport(TestImage):
)
self.assertIn("The '--uri' option is only supported ", str(exc))
self.client.import_image.assert_not_called()
self.image_client.import_image.assert_not_called()
def test_import_image__web_download_invalid_image_state(self):
self.image.status = 'uploading' # != 'queued'
@ -1981,7 +2001,7 @@ class TestImageImport(TestImage):
str(exc),
)
self.client.import_image.assert_not_called()
self.image_client.import_image.assert_not_called()
def test_import_image__copy_image(self):
self.image.status = 'active'
@ -2001,7 +2021,7 @@ class TestImageImport(TestImage):
self.cmd.take_action(parsed_args)
self.client.import_image.assert_called_once_with(
self.image_client.import_image.assert_called_once_with(
self.image,
method='copy-image',
uri=None,
@ -2036,7 +2056,7 @@ class TestImageImport(TestImage):
self.cmd.take_action(parsed_args)
self.client.import_image.assert_called_once_with(
self.image_client.import_image.assert_called_once_with(
self.image,
method='glance-download',
uri=None,
@ -2055,8 +2075,8 @@ class TestImageSave(TestImage):
def setUp(self):
super().setUp()
self.client.find_image.return_value = self.image
self.client.download_image.return_value = self.image
self.image_client.find_image.return_value = self.image
self.image_client.download_image.return_value = self.image
# Get the command object to test
self.cmd = _image.SaveImage(self.app, None)
@ -2072,7 +2092,7 @@ class TestImageSave(TestImage):
self.cmd.take_action(parsed_args)
self.client.download_image.assert_called_once_with(
self.image_client.download_image.assert_called_once_with(
self.image.id, stream=True, output='/path/to/file'
)
@ -2109,7 +2129,7 @@ class TestStoresInfo(TestImage):
def setUp(self):
super().setUp()
self.client.stores.return_value = self.stores_info
self.image_client.stores.return_value = self.stores_info
self.cmd = _image.StoresInfo(self.app, None)
@ -2118,19 +2138,21 @@ class TestStoresInfo(TestImage):
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.client.stores.assert_called()
self.image_client.stores.assert_called()
def test_stores_info_with_detail(self):
arglist = ['--detail']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.client.stores.assert_called_with(details=True)
self.image_client.stores.assert_called_with(details=True)
def test_stores_info_neg(self):
arglist = []
parsed_args = self.check_parser(self.cmd, arglist, [])
self.client.stores.side_effect = sdk_exceptions.ResourceNotFound()
self.image_client.stores.side_effect = (
sdk_exceptions.ResourceNotFound()
)
exc = self.assertRaises(
exceptions.CommandError,

View File

@ -14,24 +14,16 @@
# under the License.
from openstackclient.image.v2 import info
from openstackclient.tests.unit.image.v2 import fakes as info_fakes
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
class TestInfo(info_fakes.TestImagev2):
def setUp(self):
super().setUp()
# Get shortcuts to mocked image client
self.client = self.app.client_manager.image
class TestImportInfo(TestInfo):
import_info = info_fakes.create_one_import_info()
class TestImportInfo(image_fakes.TestImagev2):
import_info = image_fakes.create_one_import_info()
def setUp(self):
super().setUp()
self.client.get_import_info.return_value = self.import_info
self.image_client.get_import_info.return_value = self.import_info
self.cmd = info.ImportInfo(self.app, None)
@ -40,4 +32,4 @@ class TestImportInfo(TestInfo):
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.client.get_import_info.assert_called()
self.image_client.get_import_info.assert_called()

View File

@ -13,25 +13,11 @@
# under the License.
from openstackclient.image.v2 import metadef_namespaces
from openstackclient.tests.unit.image.v2 import fakes as md_namespace_fakes
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
class TestMetadefNamespaces(md_namespace_fakes.TestMetadefNamespaces):
def setUp(self):
super().setUp()
# Get shortcuts to mocked image client
self.client = self.app.client_manager.image
# Get shortcut to the Mocks in identity client
self.project_mock = self.app.client_manager.identity.projects
self.project_mock.reset_mock()
self.domain_mock = self.app.client_manager.identity.domains
self.domain_mock.reset_mock()
class TestMetadefNamespaceCreate(TestMetadefNamespaces):
_metadef_namespace = md_namespace_fakes.create_one_metadef_namespace()
class TestMetadefNamespaceCreate(image_fakes.TestImagev2):
_metadef_namespace = image_fakes.create_one_metadef_namespace()
expected_columns = (
'created_at',
@ -65,7 +51,7 @@ class TestMetadefNamespaceCreate(TestMetadefNamespaces):
def setUp(self):
super().setUp()
self.client.create_metadef_namespace.return_value = (
self.image_client.create_metadef_namespace.return_value = (
self._metadef_namespace
)
self.cmd = metadef_namespaces.CreateMetadefNameSpace(self.app, None)
@ -83,13 +69,13 @@ class TestMetadefNamespaceCreate(TestMetadefNamespaces):
self.assertEqual(self.expected_data, data)
class TestMetadefNamespaceDelete(TestMetadefNamespaces):
_metadef_namespace = md_namespace_fakes.create_one_metadef_namespace()
class TestMetadefNamespaceDelete(image_fakes.TestImagev2):
_metadef_namespace = image_fakes.create_one_metadef_namespace()
def setUp(self):
super().setUp()
self.client.delete_metadef_namespace.return_value = (
self.image_client.delete_metadef_namespace.return_value = (
self._metadef_namespace
)
self.cmd = metadef_namespaces.DeleteMetadefNameSpace(self.app, None)
@ -106,8 +92,8 @@ class TestMetadefNamespaceDelete(TestMetadefNamespaces):
self.assertIsNone(result)
class TestMetadefNamespaceList(TestMetadefNamespaces):
_metadef_namespace = [md_namespace_fakes.create_one_metadef_namespace()]
class TestMetadefNamespaceList(image_fakes.TestImagev2):
_metadef_namespace = [image_fakes.create_one_metadef_namespace()]
columns = ['namespace']
@ -116,13 +102,13 @@ class TestMetadefNamespaceList(TestMetadefNamespaces):
def setUp(self):
super().setUp()
self.client.metadef_namespaces.side_effect = [
self.image_client.metadef_namespaces.side_effect = [
self._metadef_namespace,
[],
]
# Get the command object to test
self.client.metadef_namespaces.return_value = iter(
self.image_client.metadef_namespaces.return_value = iter(
self._metadef_namespace
)
self.cmd = metadef_namespaces.ListMetadefNameSpaces(self.app, None)
@ -141,13 +127,13 @@ class TestMetadefNamespaceList(TestMetadefNamespaces):
self.assertEqual(getattr(self.datalist[0], 'namespace'), next(data)[0])
class TestMetadefNamespaceSet(TestMetadefNamespaces):
_metadef_namespace = md_namespace_fakes.create_one_metadef_namespace()
class TestMetadefNamespaceSet(image_fakes.TestImagev2):
_metadef_namespace = image_fakes.create_one_metadef_namespace()
def setUp(self):
super().setUp()
self.client.update_metadef_namespace.return_value = (
self.image_client.update_metadef_namespace.return_value = (
self._metadef_namespace
)
self.cmd = metadef_namespaces.SetMetadefNameSpace(self.app, None)
@ -166,8 +152,8 @@ class TestMetadefNamespaceSet(TestMetadefNamespaces):
self.assertIsNone(result)
class TestMetadefNamespaceShow(TestMetadefNamespaces):
_metadef_namespace = md_namespace_fakes.create_one_metadef_namespace()
class TestMetadefNamespaceShow(image_fakes.TestImagev2):
_metadef_namespace = image_fakes.create_one_metadef_namespace()
expected_columns = (
'created_at',
@ -187,7 +173,7 @@ class TestMetadefNamespaceShow(TestMetadefNamespaces):
def setUp(self):
super().setUp()
self.client.get_metadef_namespace.return_value = (
self.image_client.get_metadef_namespace.return_value = (
self._metadef_namespace
)
self.cmd = metadef_namespaces.ShowMetadefNameSpace(self.app, None)

View File

@ -11,18 +11,11 @@
# under the License.
from openstackclient.image.v2 import metadef_resource_types
from openstackclient.tests.unit.image.v2 import fakes as resource_type_fakes
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
class TestMetadefResourceTypes(resource_type_fakes.TestImagev2):
def setUp(self):
super().setUp()
self.client = self.app.client_manager.image
class TestMetadefResourceTypeList(TestMetadefResourceTypes):
resource_types = resource_type_fakes.create_resource_types()
class TestMetadefResourceTypeList(image_fakes.TestImagev2):
resource_types = image_fakes.create_resource_types()
columns = ['Name']
@ -31,7 +24,7 @@ class TestMetadefResourceTypeList(TestMetadefResourceTypes):
def setUp(self):
super().setUp()
self.client.metadef_resource_types.side_effect = [
self.image_client.metadef_resource_types.side_effect = [
self.resource_types,
[],
]

View File

@ -16,15 +16,7 @@ from openstackclient.image.v2 import task
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
class TestTask(image_fakes.TestImagev2):
def setUp(self):
super().setUp()
# Get shortcuts to mocked image client
self.client = self.app.client_manager.image
class TestTaskShow(TestTask):
class TestTaskShow(image_fakes.TestImagev2):
task = image_fakes.create_one_task()
columns = (
@ -57,7 +49,7 @@ class TestTaskShow(TestTask):
def setUp(self):
super().setUp()
self.client.get_task.return_value = self.task
self.image_client.get_task.return_value = self.task
# Get the command object to test
self.cmd = task.ShowTask(self.app, None)
@ -73,13 +65,13 @@ class TestTaskShow(TestTask):
# returns a two-part tuple with a tuple of column names and a tuple of
# data to be shown.
columns, data = self.cmd.take_action(parsed_args)
self.client.get_task.assert_called_with(self.task.id)
self.image_client.get_task.assert_called_with(self.task.id)
self.assertEqual(self.columns, columns)
self.assertCountEqual(self.data, data)
class TestTaskList(TestTask):
class TestTaskList(image_fakes.TestImagev2):
tasks = image_fakes.create_tasks()
columns = (
@ -101,7 +93,7 @@ class TestTaskList(TestTask):
def setUp(self):
super().setUp()
self.client.tasks.side_effect = [self.tasks, []]
self.image_client.tasks.side_effect = [self.tasks, []]
# Get the command object to test
self.cmd = task.ListTask(self.app, None)
@ -120,7 +112,7 @@ class TestTaskList(TestTask):
columns, data = self.cmd.take_action(parsed_args)
self.client.tasks.assert_called_with()
self.image_client.tasks.assert_called_with()
self.assertEqual(self.columns, columns)
self.assertCountEqual(self.datalist, data)
@ -132,7 +124,7 @@ class TestTaskList(TestTask):
columns, data = self.cmd.take_action(parsed_args)
self.client.tasks.assert_called_with(
self.image_client.tasks.assert_called_with(
sort_key=parsed_args.sort_key,
)
@ -146,7 +138,7 @@ class TestTaskList(TestTask):
self.cmd.take_action(parsed_args)
self.client.tasks.assert_called_with(
self.image_client.tasks.assert_called_with(
sort_dir=parsed_args.sort_dir,
)
@ -157,7 +149,7 @@ class TestTaskList(TestTask):
self.cmd.take_action(parsed_args)
self.client.tasks.assert_called_with(
self.image_client.tasks.assert_called_with(
limit=parsed_args.limit,
marker=parsed_args.marker,
)
@ -169,7 +161,7 @@ class TestTaskList(TestTask):
self.cmd.take_action(parsed_args)
self.client.tasks.assert_called_with(
self.image_client.tasks.assert_called_with(
type=self.tasks[0].type,
)
@ -180,6 +172,6 @@ class TestTaskList(TestTask):
self.cmd.take_action(parsed_args)
self.client.tasks.assert_called_with(
self.image_client.tasks.assert_called_with(
status=self.tasks[0].status,
)

View File

@ -44,9 +44,8 @@ class TestVolume(volume_fakes.TestVolumev1):
self.users_mock = self.app.client_manager.identity.users
self.users_mock.reset_mock()
# Get a shortcut to the ImageManager Mock
self.images_mock = self.app.client_manager.image.images
self.images_mock.reset_mock()
self.app.client_manager.image = mock.Mock()
self.image_client = self.app.client_manager.image
def setup_volumes_mock(self, count):
volumes = volume_fakes.create_volumes(count=count)
@ -328,7 +327,7 @@ class TestVolumeCreate(TestVolume):
def test_volume_create_image_id(self):
image = image_fakes.create_one_image()
self.images_mock.get.return_value = image
self.image_client.find_image.return_value = image
arglist = [
'--image',
@ -373,7 +372,7 @@ class TestVolumeCreate(TestVolume):
def test_volume_create_image_name(self):
image = image_fakes.create_one_image()
self.images_mock.get.return_value = image
self.image_client.find_image.return_value = image
arglist = [
'--image',

View File

@ -41,9 +41,6 @@ class TestVolume(volume_fakes.TestVolume):
self.users_mock = self.app.client_manager.identity.users
self.users_mock.reset_mock()
self.find_image_mock = self.app.client_manager.image.find_image
self.find_image_mock.reset_mock()
self.snapshots_mock = self.app.client_manager.volume.volume_snapshots
self.snapshots_mock.reset_mock()
@ -58,6 +55,8 @@ class TestVolume(volume_fakes.TestVolume):
)
self.consistencygroups_mock.reset_mock()
self.image_client = self.app.client_manager.image
def setup_volumes_mock(self, count):
volumes = volume_fakes.create_volumes(count=count)
@ -233,7 +232,7 @@ class TestVolumeCreate(TestVolume):
def test_volume_create_image_id(self):
image = image_fakes.create_one_image()
self.find_image_mock.return_value = image
self.image_client.find_image.return_value = image
arglist = [
'--image',
@ -274,7 +273,7 @@ class TestVolumeCreate(TestVolume):
def test_volume_create_image_name(self):
image = image_fakes.create_one_image()
self.find_image_mock.return_value = image
self.image_client.find_image.return_value = image
arglist = [
'--image',

View File

@ -206,9 +206,9 @@ class CreateVolume(command.ShowOne):
image = None
if parsed_args.image:
image = utils.find_resource(
image_client.images,
image = image_client.find_image(
parsed_args.image,
ignore_missing=False,
).id
snapshot = parsed_args.snapshot or parsed_args.snapshot_id