Fix image tests to use warlock resources
We have been testing (incorrectly) Image v2 using our usual FakeResource objects, when the v2 API actually uses warlock schema modelled resources. Bring this to the tests (TestImageSet was already doing this) Change-Id: Ia6ed3a8e28a8961f770c241b49d47cce9ff328d3
This commit is contained in:
parent
a68576b34b
commit
c3d4810850
@ -18,6 +18,9 @@ import mock
|
||||
import random
|
||||
import uuid
|
||||
|
||||
from glanceclient.v2 import schemas
|
||||
import warlock
|
||||
|
||||
from openstackclient.common import utils as common_utils
|
||||
from openstackclient.tests import fakes
|
||||
from openstackclient.tests import utils
|
||||
@ -194,7 +197,7 @@ class FakeImage(object):
|
||||
|
||||
# Set default attribute
|
||||
image_info = {
|
||||
'id': 'image-id' + uuid.uuid4().hex,
|
||||
'id': str(uuid.uuid4()),
|
||||
'name': 'image-name' + uuid.uuid4().hex,
|
||||
'owner': 'image-owner' + uuid.uuid4().hex,
|
||||
'protected': bool(random.choice([0, 1])),
|
||||
@ -205,11 +208,13 @@ class FakeImage(object):
|
||||
# Overwrite default attributes if there are some attributes set
|
||||
image_info.update(attrs)
|
||||
|
||||
image = fakes.FakeResource(
|
||||
None,
|
||||
image_info,
|
||||
loaded=True)
|
||||
return image
|
||||
# Set up the schema
|
||||
model = warlock.model_factory(
|
||||
IMAGE_schema,
|
||||
schemas.SchemaBasedModel,
|
||||
)
|
||||
|
||||
return model(**image_info)
|
||||
|
||||
@staticmethod
|
||||
def create_images(attrs=None, count=2):
|
||||
@ -248,27 +253,6 @@ class FakeImage(object):
|
||||
|
||||
return mock.MagicMock(side_effect=images)
|
||||
|
||||
@staticmethod
|
||||
def get_image_info(image=None):
|
||||
"""Get the image info from a faked image object.
|
||||
|
||||
:param image:
|
||||
A FakeResource objects faking image
|
||||
:return
|
||||
A dictionary which includes the faked image info as follows:
|
||||
{
|
||||
'id': image_id,
|
||||
'name': image_name,
|
||||
'owner': image_owner,
|
||||
'protected': image_protected,
|
||||
'visibility': image_visibility,
|
||||
'tags': image_tags
|
||||
}
|
||||
"""
|
||||
if image is not None:
|
||||
return image._info
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def get_image_columns(image=None):
|
||||
"""Get the image columns from a faked image object.
|
||||
@ -280,9 +264,8 @@ class FakeImage(object):
|
||||
('id', 'name', 'owner', 'protected', 'visibility', 'tags')
|
||||
"""
|
||||
if image is not None:
|
||||
return tuple(k for k in sorted(
|
||||
FakeImage.get_image_info(image).keys()))
|
||||
return tuple([])
|
||||
return tuple(sorted(image))
|
||||
return IMAGE_columns
|
||||
|
||||
@staticmethod
|
||||
def get_image_data(image=None):
|
||||
@ -296,7 +279,7 @@ class FakeImage(object):
|
||||
"""
|
||||
data_list = []
|
||||
if image is not None:
|
||||
for x in sorted(FakeImage.get_image_info(image).keys()):
|
||||
for x in sorted(image.keys()):
|
||||
if x == 'tags':
|
||||
# The 'tags' should be format_list
|
||||
data_list.append(
|
||||
|
@ -75,7 +75,8 @@ class TestImageCreate(TestImage):
|
||||
|
||||
# This is the return value for utils.find_resource()
|
||||
self.images_mock.get.return_value = copy.deepcopy(
|
||||
image_fakes.FakeImage.get_image_info(self.new_image))
|
||||
self.new_image
|
||||
)
|
||||
self.images_mock.update.return_value = self.new_image
|
||||
|
||||
# Get the command object to test
|
||||
@ -492,7 +493,7 @@ class TestImageList(TestImage):
|
||||
|
||||
self.api_mock = mock.Mock()
|
||||
self.api_mock.image_list.side_effect = [
|
||||
[image_fakes.FakeImage.get_image_info(self._image)], [],
|
||||
[self._image], [],
|
||||
]
|
||||
self.app.client_manager.image.api = self.api_mock
|
||||
|
||||
@ -632,10 +633,7 @@ class TestImageList(TestImage):
|
||||
|
||||
@mock.patch('openstackclient.api.utils.simple_filter')
|
||||
def test_image_list_property_option(self, sf_mock):
|
||||
sf_mock.return_value = [
|
||||
copy.deepcopy(
|
||||
image_fakes.FakeImage.get_image_info(self._image)),
|
||||
]
|
||||
sf_mock.return_value = [copy.deepcopy(self._image)]
|
||||
|
||||
arglist = [
|
||||
'--property', 'a=1',
|
||||
@ -651,7 +649,7 @@ class TestImageList(TestImage):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
self.api_mock.image_list.assert_called_with()
|
||||
sf_mock.assert_called_with(
|
||||
[image_fakes.FakeImage.get_image_info(self._image)],
|
||||
[self._image],
|
||||
attr='a',
|
||||
value='1',
|
||||
property_field='properties',
|
||||
@ -662,10 +660,7 @@ class TestImageList(TestImage):
|
||||
|
||||
@mock.patch('openstackclient.common.utils.sort_items')
|
||||
def test_image_list_sort_option(self, si_mock):
|
||||
si_mock.return_value = [
|
||||
copy.deepcopy(
|
||||
image_fakes.FakeImage.get_image_info(self._image))
|
||||
]
|
||||
si_mock.return_value = [copy.deepcopy(self._image)]
|
||||
|
||||
arglist = ['--sort', 'name:asc']
|
||||
verifylist = [('sort', 'name:asc')]
|
||||
@ -677,7 +672,7 @@ class TestImageList(TestImage):
|
||||
columns, data = self.cmd.take_action(parsed_args)
|
||||
self.api_mock.image_list.assert_called_with()
|
||||
si_mock.assert_called_with(
|
||||
[image_fakes.FakeImage.get_image_info(self._image)],
|
||||
[self._image],
|
||||
'name:asc'
|
||||
)
|
||||
self.assertEqual(self.columns, columns)
|
||||
|
Loading…
x
Reference in New Issue
Block a user