Merge "Fix image tests to use warlock resources"
This commit is contained in:
openstackclient/tests/image/v2
@ -18,6 +18,9 @@ import mock
|
|||||||
import random
|
import random
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from glanceclient.v2 import schemas
|
||||||
|
import warlock
|
||||||
|
|
||||||
from openstackclient.common import utils as common_utils
|
from openstackclient.common import utils as common_utils
|
||||||
from openstackclient.tests import fakes
|
from openstackclient.tests import fakes
|
||||||
from openstackclient.tests import utils
|
from openstackclient.tests import utils
|
||||||
@ -194,7 +197,7 @@ class FakeImage(object):
|
|||||||
|
|
||||||
# Set default attribute
|
# Set default attribute
|
||||||
image_info = {
|
image_info = {
|
||||||
'id': 'image-id' + uuid.uuid4().hex,
|
'id': str(uuid.uuid4()),
|
||||||
'name': 'image-name' + uuid.uuid4().hex,
|
'name': 'image-name' + uuid.uuid4().hex,
|
||||||
'owner': 'image-owner' + uuid.uuid4().hex,
|
'owner': 'image-owner' + uuid.uuid4().hex,
|
||||||
'protected': bool(random.choice([0, 1])),
|
'protected': bool(random.choice([0, 1])),
|
||||||
@ -205,11 +208,13 @@ class FakeImage(object):
|
|||||||
# Overwrite default attributes if there are some attributes set
|
# Overwrite default attributes if there are some attributes set
|
||||||
image_info.update(attrs)
|
image_info.update(attrs)
|
||||||
|
|
||||||
image = fakes.FakeResource(
|
# Set up the schema
|
||||||
None,
|
model = warlock.model_factory(
|
||||||
image_info,
|
IMAGE_schema,
|
||||||
loaded=True)
|
schemas.SchemaBasedModel,
|
||||||
return image
|
)
|
||||||
|
|
||||||
|
return model(**image_info)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_images(attrs=None, count=2):
|
def create_images(attrs=None, count=2):
|
||||||
@ -248,27 +253,6 @@ class FakeImage(object):
|
|||||||
|
|
||||||
return mock.MagicMock(side_effect=images)
|
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
|
@staticmethod
|
||||||
def get_image_columns(image=None):
|
def get_image_columns(image=None):
|
||||||
"""Get the image columns from a faked image object.
|
"""Get the image columns from a faked image object.
|
||||||
@ -280,9 +264,8 @@ class FakeImage(object):
|
|||||||
('id', 'name', 'owner', 'protected', 'visibility', 'tags')
|
('id', 'name', 'owner', 'protected', 'visibility', 'tags')
|
||||||
"""
|
"""
|
||||||
if image is not None:
|
if image is not None:
|
||||||
return tuple(k for k in sorted(
|
return tuple(sorted(image))
|
||||||
FakeImage.get_image_info(image).keys()))
|
return IMAGE_columns
|
||||||
return tuple([])
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_image_data(image=None):
|
def get_image_data(image=None):
|
||||||
@ -296,7 +279,7 @@ class FakeImage(object):
|
|||||||
"""
|
"""
|
||||||
data_list = []
|
data_list = []
|
||||||
if image is not None:
|
if image is not None:
|
||||||
for x in sorted(FakeImage.get_image_info(image).keys()):
|
for x in sorted(image.keys()):
|
||||||
if x == 'tags':
|
if x == 'tags':
|
||||||
# The 'tags' should be format_list
|
# The 'tags' should be format_list
|
||||||
data_list.append(
|
data_list.append(
|
||||||
|
@ -75,7 +75,8 @@ class TestImageCreate(TestImage):
|
|||||||
|
|
||||||
# This is the return value for utils.find_resource()
|
# This is the return value for utils.find_resource()
|
||||||
self.images_mock.get.return_value = copy.deepcopy(
|
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
|
self.images_mock.update.return_value = self.new_image
|
||||||
|
|
||||||
# Get the command object to test
|
# Get the command object to test
|
||||||
@ -492,7 +493,7 @@ class TestImageList(TestImage):
|
|||||||
|
|
||||||
self.api_mock = mock.Mock()
|
self.api_mock = mock.Mock()
|
||||||
self.api_mock.image_list.side_effect = [
|
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
|
self.app.client_manager.image.api = self.api_mock
|
||||||
|
|
||||||
@ -632,10 +633,7 @@ class TestImageList(TestImage):
|
|||||||
|
|
||||||
@mock.patch('openstackclient.api.utils.simple_filter')
|
@mock.patch('openstackclient.api.utils.simple_filter')
|
||||||
def test_image_list_property_option(self, sf_mock):
|
def test_image_list_property_option(self, sf_mock):
|
||||||
sf_mock.return_value = [
|
sf_mock.return_value = [copy.deepcopy(self._image)]
|
||||||
copy.deepcopy(
|
|
||||||
image_fakes.FakeImage.get_image_info(self._image)),
|
|
||||||
]
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--property', 'a=1',
|
'--property', 'a=1',
|
||||||
@ -651,7 +649,7 @@ class TestImageList(TestImage):
|
|||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
self.api_mock.image_list.assert_called_with()
|
self.api_mock.image_list.assert_called_with()
|
||||||
sf_mock.assert_called_with(
|
sf_mock.assert_called_with(
|
||||||
[image_fakes.FakeImage.get_image_info(self._image)],
|
[self._image],
|
||||||
attr='a',
|
attr='a',
|
||||||
value='1',
|
value='1',
|
||||||
property_field='properties',
|
property_field='properties',
|
||||||
@ -662,10 +660,7 @@ class TestImageList(TestImage):
|
|||||||
|
|
||||||
@mock.patch('openstackclient.common.utils.sort_items')
|
@mock.patch('openstackclient.common.utils.sort_items')
|
||||||
def test_image_list_sort_option(self, si_mock):
|
def test_image_list_sort_option(self, si_mock):
|
||||||
si_mock.return_value = [
|
si_mock.return_value = [copy.deepcopy(self._image)]
|
||||||
copy.deepcopy(
|
|
||||||
image_fakes.FakeImage.get_image_info(self._image))
|
|
||||||
]
|
|
||||||
|
|
||||||
arglist = ['--sort', 'name:asc']
|
arglist = ['--sort', 'name:asc']
|
||||||
verifylist = [('sort', 'name:asc')]
|
verifylist = [('sort', 'name:asc')]
|
||||||
@ -677,7 +672,7 @@ class TestImageList(TestImage):
|
|||||||
columns, data = self.cmd.take_action(parsed_args)
|
columns, data = self.cmd.take_action(parsed_args)
|
||||||
self.api_mock.image_list.assert_called_with()
|
self.api_mock.image_list.assert_called_with()
|
||||||
si_mock.assert_called_with(
|
si_mock.assert_called_with(
|
||||||
[image_fakes.FakeImage.get_image_info(self._image)],
|
[self._image],
|
||||||
'name:asc'
|
'name:asc'
|
||||||
)
|
)
|
||||||
self.assertEqual(self.columns, columns)
|
self.assertEqual(self.columns, columns)
|
||||||
|
Reference in New Issue
Block a user