tests: Remove use of legacy resource helpers
This allows us to remove get_servers, create_servers, and create_one_servers. Change-Id: I31a86b6333fdc3da1b54407f077873511260a5df Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
parent
db4739fc5c
commit
b0fe724caf
@ -313,61 +313,6 @@ def create_security_group_rules(attrs=None, count=2):
|
||||
return security_group_rules
|
||||
|
||||
|
||||
def create_one_server(attrs=None, methods=None):
|
||||
"""Create a fake server.
|
||||
|
||||
:param dict attrs:
|
||||
A dictionary with all attributes
|
||||
:param dict methods:
|
||||
A dictionary with all methods
|
||||
:return:
|
||||
A FakeResource object, with id, name, metadata, and so on
|
||||
"""
|
||||
attrs = attrs or {}
|
||||
methods = methods or {}
|
||||
|
||||
# Set default attributes.
|
||||
server_info = {
|
||||
'id': 'server-id-' + uuid.uuid4().hex,
|
||||
'name': 'server-name-' + uuid.uuid4().hex,
|
||||
'metadata': {},
|
||||
'image': {
|
||||
'id': 'image-id-' + uuid.uuid4().hex,
|
||||
},
|
||||
'flavor': {
|
||||
'id': 'flavor-id-' + uuid.uuid4().hex,
|
||||
},
|
||||
'OS-EXT-STS:power_state': 1,
|
||||
}
|
||||
|
||||
# Overwrite default attributes.
|
||||
server_info.update(attrs)
|
||||
|
||||
server = fakes.FakeResource(
|
||||
info=copy.deepcopy(server_info), methods=methods, loaded=True
|
||||
)
|
||||
return server
|
||||
|
||||
|
||||
def create_servers(attrs=None, methods=None, count=2):
|
||||
"""Create multiple fake servers.
|
||||
|
||||
:param dict attrs:
|
||||
A dictionary with all attributes
|
||||
:param dict methods:
|
||||
A dictionary with all methods
|
||||
:param int count:
|
||||
The number of servers to fake
|
||||
:return:
|
||||
A list of FakeResource objects faking the servers
|
||||
"""
|
||||
servers = []
|
||||
for i in range(0, count):
|
||||
servers.append(create_one_server(attrs, methods))
|
||||
|
||||
return servers
|
||||
|
||||
|
||||
def create_one_sdk_server(attrs=None):
|
||||
"""Create a fake server for testing migration to sdk
|
||||
|
||||
@ -414,24 +359,6 @@ def create_sdk_servers(attrs=None, count=2):
|
||||
return servers
|
||||
|
||||
|
||||
def get_servers(servers=None, count=2):
|
||||
"""Get an iterable MagicMock object with a list of faked servers.
|
||||
|
||||
If servers list is provided, then initialize the Mock object with the
|
||||
list. Otherwise create one.
|
||||
|
||||
:param list servers: A list of fake openstack.compute.v2.server.Server
|
||||
objects
|
||||
:param int count:
|
||||
The number of servers to fake
|
||||
:return: An iterable Mock object with side_effect set to a list of faked
|
||||
servers
|
||||
"""
|
||||
if servers is None:
|
||||
servers = create_servers(count)
|
||||
return mock.Mock(side_effect=servers)
|
||||
|
||||
|
||||
def create_one_server_action(attrs=None):
|
||||
"""Create a fake server action.
|
||||
|
||||
|
@ -22,22 +22,8 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
||||
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
|
||||
|
||||
|
||||
class TestServerBackup(compute_fakes.TestComputev2):
|
||||
def setup_servers_mock(self, count):
|
||||
servers = compute_fakes.create_sdk_servers(
|
||||
count=count,
|
||||
)
|
||||
self.compute_client.find_server = compute_fakes.get_servers(
|
||||
servers,
|
||||
0,
|
||||
)
|
||||
return servers
|
||||
|
||||
|
||||
class TestServerBackupCreate(TestServerBackup):
|
||||
# Just return whatever Image is testing with these days
|
||||
class TestServerBackupCreate(compute_fakes.TestComputev2):
|
||||
def image_columns(self, image):
|
||||
# columnlist = tuple(sorted(image.keys()))
|
||||
columnlist = (
|
||||
'id',
|
||||
'name',
|
||||
@ -64,42 +50,27 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
||||
self.server = compute_fakes.create_one_sdk_server()
|
||||
self.compute_client.find_server.return_value = self.server
|
||||
|
||||
self.image = image_fakes.create_one_image(
|
||||
{'name': self.server.name, 'status': 'active'}
|
||||
)
|
||||
self.image_client.find_image.return_value = self.image
|
||||
|
||||
# Get the command object to test
|
||||
self.cmd = server_backup.CreateServerBackup(self.app, None)
|
||||
|
||||
def setup_images_mock(self, count, servers=None):
|
||||
if servers:
|
||||
images = image_fakes.create_images(
|
||||
attrs={
|
||||
'name': servers[0].name,
|
||||
'status': 'active',
|
||||
},
|
||||
count=count,
|
||||
)
|
||||
else:
|
||||
images = image_fakes.create_images(
|
||||
attrs={
|
||||
'status': 'active',
|
||||
},
|
||||
count=count,
|
||||
)
|
||||
|
||||
self.image_client.find_image = mock.Mock(side_effect=images)
|
||||
return images
|
||||
|
||||
def test_server_backup_defaults(self):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
arglist = [
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('name', None),
|
||||
('type', None),
|
||||
('rotate', None),
|
||||
('wait', False),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -109,19 +80,16 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.compute_client.backup_server.assert_called_with(
|
||||
servers[0].id,
|
||||
servers[0].name,
|
||||
self.server.id,
|
||||
self.server.name,
|
||||
'',
|
||||
1,
|
||||
)
|
||||
|
||||
self.assertEqual(self.image_columns(images[0]), columns)
|
||||
self.assertCountEqual(self.image_data(images[0]), data)
|
||||
self.assertEqual(self.image_columns(self.image), columns)
|
||||
self.assertCountEqual(self.image_data(self.image), data)
|
||||
|
||||
def test_server_backup_create_options(self):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
arglist = [
|
||||
'--name',
|
||||
'image',
|
||||
@ -129,13 +97,13 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
'daily',
|
||||
'--rotate',
|
||||
'2',
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('name', 'image'),
|
||||
('type', 'daily'),
|
||||
('rotate', 2),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -145,22 +113,18 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.compute_client.backup_server.assert_called_with(
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
'image',
|
||||
'daily',
|
||||
2,
|
||||
)
|
||||
|
||||
self.assertEqual(self.image_columns(images[0]), columns)
|
||||
self.assertCountEqual(self.image_data(images[0]), data)
|
||||
self.assertEqual(self.image_columns(self.image), columns)
|
||||
self.assertCountEqual(self.image_data(self.image), data)
|
||||
|
||||
@mock.patch.object(common_utils, 'wait_for_status', return_value=False)
|
||||
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.image_client.get_image = mock.Mock(
|
||||
side_effect=images[0],
|
||||
)
|
||||
self.image_client.get_image.return_value = self.image
|
||||
|
||||
arglist = [
|
||||
'--name',
|
||||
@ -168,13 +132,13 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
'--type',
|
||||
'daily',
|
||||
'--wait',
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('name', 'image'),
|
||||
('type', 'daily'),
|
||||
('wait', True),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -185,23 +149,20 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
)
|
||||
|
||||
self.compute_client.backup_server.assert_called_with(
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
'image',
|
||||
'daily',
|
||||
1,
|
||||
)
|
||||
|
||||
mock_wait_for_status.assert_called_once_with(
|
||||
self.image_client.get_image, images[0].id, callback=mock.ANY
|
||||
self.image_client.get_image, self.image.id, callback=mock.ANY
|
||||
)
|
||||
|
||||
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
|
||||
def test_server_backup_wait_ok(self, mock_wait_for_status):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
self.image_client.get_image = mock.Mock(
|
||||
side_effect=images[0],
|
||||
side_effect=self.image,
|
||||
)
|
||||
|
||||
arglist = [
|
||||
@ -210,13 +171,13 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
'--type',
|
||||
'daily',
|
||||
'--wait',
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('name', 'image'),
|
||||
('type', 'daily'),
|
||||
('wait', True),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -226,15 +187,15 @@ class TestServerBackupCreate(TestServerBackup):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.compute_client.backup_server.assert_called_with(
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
'image',
|
||||
'daily',
|
||||
1,
|
||||
)
|
||||
|
||||
mock_wait_for_status.assert_called_once_with(
|
||||
self.image_client.get_image, images[0].id, callback=mock.ANY
|
||||
self.image_client.get_image, self.image.id, callback=mock.ANY
|
||||
)
|
||||
|
||||
self.assertEqual(self.image_columns(images[0]), columns)
|
||||
self.assertCountEqual(self.image_data(images[0]), data)
|
||||
self.assertEqual(self.image_columns(self.image), columns)
|
||||
self.assertCountEqual(self.image_data(self.image), data)
|
||||
|
@ -21,21 +21,8 @@ from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
|
||||
from openstackclient.tests.unit.image.v2 import fakes as image_fakes
|
||||
|
||||
|
||||
class TestServerImage(compute_fakes.TestComputev2):
|
||||
def setup_servers_mock(self, count):
|
||||
servers = compute_fakes.create_sdk_servers(
|
||||
count=count,
|
||||
)
|
||||
self.compute_client.find_server = compute_fakes.get_servers(
|
||||
servers,
|
||||
0,
|
||||
)
|
||||
return servers
|
||||
|
||||
|
||||
class TestServerImageCreate(TestServerImage):
|
||||
class TestServerImageCreate(compute_fakes.TestComputev2):
|
||||
def image_columns(self, image):
|
||||
# columnlist = tuple(sorted(image.keys()))
|
||||
columnlist = (
|
||||
'id',
|
||||
'name',
|
||||
@ -62,41 +49,24 @@ class TestServerImageCreate(TestServerImage):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
||||
self.server = compute_fakes.create_one_sdk_server()
|
||||
self.compute_client.find_server.return_value = self.server
|
||||
|
||||
self.image = image_fakes.create_one_image(
|
||||
{'name': self.server.name, 'status': 'active'}
|
||||
)
|
||||
self.image_client.find_image.return_value = self.image
|
||||
self.compute_client.create_server_image.return_value = self.image
|
||||
|
||||
# Get the command object to test
|
||||
self.cmd = server_image.CreateServerImage(self.app, None)
|
||||
|
||||
def setup_images_mock(self, count, servers=None):
|
||||
if servers:
|
||||
images = image_fakes.create_images(
|
||||
attrs={
|
||||
'name': servers[0].name,
|
||||
'status': 'active',
|
||||
},
|
||||
count=count,
|
||||
)
|
||||
else:
|
||||
images = image_fakes.create_images(
|
||||
attrs={
|
||||
'status': 'active',
|
||||
},
|
||||
count=count,
|
||||
)
|
||||
|
||||
self.image_client.find_image = mock.Mock(side_effect=images)
|
||||
self.compute_client.create_server_image = mock.Mock(
|
||||
return_value=images[0],
|
||||
)
|
||||
return images
|
||||
|
||||
def test_server_image_create_defaults(self):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
arglist = [
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -106,28 +76,25 @@ class TestServerImageCreate(TestServerImage):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.compute_client.create_server_image.assert_called_with(
|
||||
servers[0].id,
|
||||
servers[0].name,
|
||||
self.server.id,
|
||||
self.server.name,
|
||||
None,
|
||||
)
|
||||
|
||||
self.assertEqual(self.image_columns(images[0]), columns)
|
||||
self.assertCountEqual(self.image_data(images[0]), data)
|
||||
self.assertEqual(self.image_columns(self.image), columns)
|
||||
self.assertCountEqual(self.image_data(self.image), data)
|
||||
|
||||
def test_server_image_create_options(self):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
arglist = [
|
||||
'--name',
|
||||
'img-nam',
|
||||
'--property',
|
||||
'key=value',
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('name', 'img-nam'),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
('properties', {'key': 'value'}),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
@ -138,26 +105,23 @@ class TestServerImageCreate(TestServerImage):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.compute_client.create_server_image.assert_called_with(
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
'img-nam',
|
||||
{'key': 'value'},
|
||||
)
|
||||
|
||||
self.assertEqual(self.image_columns(images[0]), columns)
|
||||
self.assertCountEqual(self.image_data(images[0]), data)
|
||||
self.assertEqual(self.image_columns(self.image), columns)
|
||||
self.assertCountEqual(self.image_data(self.image), data)
|
||||
|
||||
@mock.patch.object(common_utils, 'wait_for_status', return_value=False)
|
||||
def test_server_create_image_wait_fail(self, mock_wait_for_status):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
arglist = [
|
||||
'--wait',
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('wait', True),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -168,27 +132,24 @@ class TestServerImageCreate(TestServerImage):
|
||||
)
|
||||
|
||||
self.compute_client.create_server_image.assert_called_with(
|
||||
servers[0].id,
|
||||
servers[0].name,
|
||||
self.server.id,
|
||||
self.server.name,
|
||||
None,
|
||||
)
|
||||
|
||||
mock_wait_for_status.assert_called_once_with(
|
||||
self.image_client.get_image, images[0].id, callback=mock.ANY
|
||||
self.image_client.get_image, self.image.id, callback=mock.ANY
|
||||
)
|
||||
|
||||
@mock.patch.object(common_utils, 'wait_for_status', return_value=True)
|
||||
def test_server_create_image_wait_ok(self, mock_wait_for_status):
|
||||
servers = self.setup_servers_mock(count=1)
|
||||
images = self.setup_images_mock(count=1, servers=servers)
|
||||
|
||||
arglist = [
|
||||
'--wait',
|
||||
servers[0].id,
|
||||
self.server.id,
|
||||
]
|
||||
verifylist = [
|
||||
('wait', True),
|
||||
('server', servers[0].id),
|
||||
('server', self.server.id),
|
||||
]
|
||||
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
||||
|
||||
@ -198,14 +159,14 @@ class TestServerImageCreate(TestServerImage):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
|
||||
self.compute_client.create_server_image.assert_called_with(
|
||||
servers[0].id,
|
||||
servers[0].name,
|
||||
self.server.id,
|
||||
self.server.name,
|
||||
None,
|
||||
)
|
||||
|
||||
mock_wait_for_status.assert_called_once_with(
|
||||
self.image_client.get_image, images[0].id, callback=mock.ANY
|
||||
self.image_client.get_image, self.image.id, callback=mock.ANY
|
||||
)
|
||||
|
||||
self.assertEqual(self.image_columns(images[0]), columns)
|
||||
self.assertCountEqual(self.image_data(images[0]), data)
|
||||
self.assertEqual(self.image_columns(self.image), columns)
|
||||
self.assertCountEqual(self.image_data(self.image), data)
|
||||
|
Loading…
x
Reference in New Issue
Block a user