Add functional tests for image set

This patch includes functional tests for image set and it includes
a change to use the OSC utils.format_dict method to format the
properties.  This will give a more user friendly format to the image
commands and it gives a more consistent testable format to the
output.  Instead of:

{u'a': u'b', u'c': u'd'}

The user will see:

a=b, c=d

Change-Id: Ib396316586ffc5dbab231064d5b6dc9425507934
This commit is contained in:
TerryHowe 2015-06-03 17:18:38 -06:00 committed by Terry Howe
parent deb5a9790d
commit ce65164155
3 changed files with 29 additions and 3 deletions

View File

@ -19,6 +19,7 @@ class ImageTests(test.TestCase):
"""Functional tests for image. """
NAME = uuid.uuid4().hex
OTHER_NAME = uuid.uuid4().hex
HEADERS = ['Name']
FIELDS = ['name']
@ -31,7 +32,13 @@ class ImageTests(test.TestCase):
@classmethod
def tearDownClass(cls):
raw_output = cls.openstack('image delete ' + cls.NAME)
# Rename test
opts = cls.get_show_opts(cls.FIELDS)
raw_output = cls.openstack(
'image set --name ' + cls.OTHER_NAME + ' ' + cls.NAME + opts)
cls.assertOutput(cls.OTHER_NAME + "\n", raw_output)
# Delete test
raw_output = cls.openstack('image delete ' + cls.OTHER_NAME)
cls.assertOutput('', raw_output)
def test_image_list(self):
@ -43,3 +50,17 @@ class ImageTests(test.TestCase):
opts = self.get_show_opts(self.FIELDS)
raw_output = self.openstack('image show ' + self.NAME + opts)
self.assertEqual(self.NAME + "\n", raw_output)
def test_image_set(self):
opts = self.get_show_opts([
"disk_format", "is_public", "min_disk", "min_ram", "name"])
raw_output = self.openstack('image set --min-disk 4 --min-ram 5 ' +
'--disk-format qcow2 --public ' +
self.NAME + opts)
self.assertEqual("qcow2\nTrue\n4\n5\n" + self.NAME + '\n', raw_output)
def test_image_metadata(self):
opts = self.get_show_opts(["name", "properties"])
raw_output = self.openstack(
'image set --property a=b --property c=d ' + self.NAME + opts)
self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output)

View File

@ -275,6 +275,7 @@ class CreateImage(show.ShowOne):
info = {}
info.update(image._info)
info['properties'] = utils.format_dict(info.get('properties', {}))
return zip(*sorted(six.iteritems(info)))
@ -608,6 +609,7 @@ class SetImage(show.ShowOne):
info = {}
info.update(image._info)
info['properties'] = utils.format_dict(info.get('properties', {}))
return zip(*sorted(six.iteritems(info)))
@ -636,4 +638,5 @@ class ShowImage(show.ShowOne):
info = {}
info.update(image._info)
info['properties'] = utils.format_dict(info.get('properties', {}))
return zip(*sorted(six.iteritems(info)))

View File

@ -30,7 +30,7 @@ image_properties = {
'Beta': 'b',
'Gamma': 'g',
}
image_properties_str = "{'Alpha': 'a', 'Beta': 'b', 'Gamma': 'g'}"
image_properties_str = "Alpha='a', Beta='b', Gamma='g'"
image_data = 'line 1\nline 2\n'
IMAGE = {
@ -47,7 +47,9 @@ IMAGE = {
}
IMAGE_columns = tuple(sorted(IMAGE))
IMAGE_data = tuple((IMAGE[x] for x in sorted(IMAGE)))
IMAGE_output = dict(IMAGE)
IMAGE_output['properties'] = image_properties_str
IMAGE_data = tuple((IMAGE_output[x] for x in sorted(IMAGE_output)))
class FakeImagev1Client(object):