summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTerryHowe <terrylhowe@gmail.com>2015-06-03 17:18:38 -0600
committerTerry Howe <terrylhowe@gmail.com>2015-06-16 12:34:00 +0000
commitce65164155dcf6dddf7695fbc5ca6352c121cc04 (patch)
treef3f95178e20c211192ed0d1b7a67a92d367ebb83
parentdeb5a9790d07975b46107060c9f3ac02e4f502e7 (diff)
downloadpython-openstackclient-ce65164155dcf6dddf7695fbc5ca6352c121cc04.tar.gz
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
-rw-r--r--functional/tests/image/v1/test_image.py23
-rw-r--r--openstackclient/image/v1/image.py3
-rw-r--r--openstackclient/tests/image/v1/fakes.py6
3 files changed, 29 insertions, 3 deletions
diff --git a/functional/tests/image/v1/test_image.py b/functional/tests/image/v1/test_image.py
index e27ab24c..9f6ddcc5 100644
--- a/functional/tests/image/v1/test_image.py
+++ b/functional/tests/image/v1/test_image.py
@@ -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)
diff --git a/openstackclient/image/v1/image.py b/openstackclient/image/v1/image.py
index d4d45fa2..85a9e076 100644
--- a/openstackclient/image/v1/image.py
+++ b/openstackclient/image/v1/image.py
@@ -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)))
diff --git a/openstackclient/tests/image/v1/fakes.py b/openstackclient/tests/image/v1/fakes.py
index 972e6415..95a8a39c 100644
--- a/openstackclient/tests/image/v1/fakes.py
+++ b/openstackclient/tests/image/v1/fakes.py
@@ -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):