Merge "Fix image tests to use warlock resources"

This commit is contained in:
Jenkins 2016-05-21 23:04:50 +00:00 committed by Gerrit Code Review
commit f44416b750
2 changed files with 21 additions and 43 deletions

View File

@ -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(

View File

@ -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)