Skip to content

Commit 7c43c1a

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Convert image functional tests into JSON format"
2 parents 2be3de2 + 332671f commit 7c43c1a

2 files changed

Lines changed: 59 additions & 52 deletions

File tree

openstackclient/tests/functional/image/v1/test_image.py

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
# License for the specific language governing permissions and limitations
1111
# under the License.
1212

13+
import json
1314
import os
1415
import uuid
1516

@@ -21,16 +22,13 @@ class ImageTests(base.TestCase):
2122

2223
NAME = uuid.uuid4().hex
2324
OTHER_NAME = uuid.uuid4().hex
24-
HEADERS = ['Name']
25-
FIELDS = ['name']
2625

2726
@classmethod
2827
def setUpClass(cls):
2928
os.environ['OS_IMAGE_API_VERSION'] = '1'
30-
opts = cls.get_opts(cls.FIELDS)
31-
raw_output = cls.openstack('image create ' + cls.NAME + opts)
32-
expected = cls.NAME + '\n'
33-
cls.assertOutput(expected, raw_output)
29+
cmd_output = json.loads(cls.openstack(
30+
'image create -f json ' + cls.NAME))
31+
cls.assertOutput(cls.NAME, cmd_output['name'])
3432

3533
@classmethod
3634
def tearDownClass(cls):
@@ -43,25 +41,29 @@ def tearDownClass(cls):
4341
cls.assertOutput('', raw_output)
4442

4543
def test_image_list(self):
46-
opts = self.get_opts(self.HEADERS)
47-
raw_output = self.openstack('image list' + opts)
48-
self.assertIn(self.NAME, raw_output)
44+
cmd_output = json.loads(self.openstack('image list -f json'))
45+
col_names = [img['Name'] for img in cmd_output]
46+
self.assertIn(self.NAME, col_names)
4947

5048
def test_image_show(self):
51-
opts = self.get_opts(self.FIELDS)
52-
raw_output = self.openstack('image show ' + self.NAME + opts)
53-
self.assertEqual(self.NAME + "\n", raw_output)
49+
cmd_output = json.loads(self.openstack(
50+
'image show -f json ' + self.NAME))
51+
self.assertEqual(self.NAME, cmd_output['name'])
5452

5553
def test_image_set(self):
56-
opts = self.get_opts([
57-
"disk_format", "is_public", "min_disk", "min_ram", "name"])
5854
self.openstack('image set --min-disk 4 --min-ram 5 ' +
59-
'--disk-format qcow2 --public ' + self.NAME)
60-
raw_output = self.openstack('image show ' + self.NAME + opts)
61-
self.assertEqual("qcow2\nTrue\n4\n5\n" + self.NAME + '\n', raw_output)
55+
'--disk-format qcow2 --public ' + self.NAME)
56+
cmd_output = json.loads(self.openstack(
57+
'image show -f json ' + self.NAME))
58+
self.assertEqual(self.NAME, cmd_output['name'])
59+
self.assertEqual(4, cmd_output['min_disk'])
60+
self.assertEqual(5, cmd_output['min_ram'])
61+
self.assertEqual('qcow2', cmd_output['disk_format'])
62+
self.assertEqual(True, cmd_output['is_public'])
6263

6364
def test_image_metadata(self):
64-
opts = self.get_opts(["name", "properties"])
6565
self.openstack('image set --property a=b --property c=d ' + self.NAME)
66-
raw_output = self.openstack('image show ' + self.NAME + opts)
67-
self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output)
66+
cmd_output = json.loads(self.openstack(
67+
'image show -f json ' + self.NAME))
68+
self.assertEqual(self.NAME, cmd_output['name'])
69+
self.assertEqual("a='b', c='d'", cmd_output['properties'])

openstackclient/tests/functional/image/v2/test_image.py

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
# License for the specific language governing permissions and limitations
1111
# under the License.
1212

13+
import json
1314
import os
1415
import uuid
1516

@@ -21,16 +22,13 @@ class ImageTests(base.TestCase):
2122

2223
NAME = uuid.uuid4().hex
2324
OTHER_NAME = uuid.uuid4().hex
24-
HEADERS = ['Name']
25-
FIELDS = ['name']
2625

2726
@classmethod
2827
def setUpClass(cls):
2928
os.environ['OS_IMAGE_API_VERSION'] = '2'
30-
opts = cls.get_opts(cls.FIELDS)
31-
raw_output = cls.openstack('image create ' + cls.NAME + opts)
32-
expected = cls.NAME + '\n'
33-
cls.assertOutput(expected, raw_output)
29+
cmd_output = json.loads(cls.openstack(
30+
'image create -f json ' + cls.NAME))
31+
cls.assertOutput(cls.NAME, cmd_output['name'])
3432

3533
@classmethod
3634
def tearDownClass(cls):
@@ -43,56 +41,63 @@ def tearDownClass(cls):
4341
cls.assertOutput('', raw_output)
4442

4543
def test_image_list(self):
46-
opts = self.get_opts(self.HEADERS)
47-
raw_output = self.openstack('image list' + opts)
48-
self.assertIn(self.NAME, raw_output)
44+
cmd_output = json.loads(self.openstack('image list -f json'))
45+
col_names = [x['Name'] for x in cmd_output]
46+
self.assertIn(self.NAME, col_names)
4947

5048
def test_image_show(self):
51-
opts = self.get_opts(self.FIELDS)
52-
raw_output = self.openstack('image show ' + self.NAME + opts)
53-
self.assertEqual(self.NAME + "\n", raw_output)
49+
cmd_output = json.loads(self.openstack(
50+
'image show -f json ' + self.NAME))
51+
self.assertEqual(self.NAME, cmd_output['name'])
5452

5553
def test_image_set(self):
56-
opts = self.get_opts([
57-
"disk_format", "visibility", "min_disk", "min_ram", "name"])
58-
self.openstack('image set --min-disk 4 --min-ram 5 ' +
59-
'--public ' + self.NAME)
60-
raw_output = self.openstack('image show ' + self.NAME + opts)
61-
self.assertEqual("raw\n4\n5\n" + self.NAME + '\npublic\n', raw_output)
54+
self.openstack('image set --min-disk 4 --min-ram 5 --public '
55+
+ self.NAME)
56+
cmd_output = json.loads(self.openstack(
57+
'image show -f json ' + self.NAME))
58+
self.assertEqual(self.NAME, cmd_output['name'])
59+
self.assertEqual(4, cmd_output['min_disk'])
60+
self.assertEqual(5, cmd_output['min_ram'])
61+
self.assertEqual('raw', cmd_output['disk_format'])
62+
self.assertEqual('public', cmd_output['visibility'])
6263

6364
def test_image_metadata(self):
64-
opts = self.get_opts(["name", "properties"])
6565
self.openstack('image set --property a=b --property c=d ' + self.NAME)
66-
raw_output = self.openstack('image show ' + self.NAME + opts)
67-
self.assertEqual(self.NAME + "\na='b', c='d'\n", raw_output)
66+
cmd_output = json.loads(self.openstack(
67+
'image show -f json ' + self.NAME))
68+
self.assertEqual(self.NAME, cmd_output['name'])
69+
self.assertEqual("a='b', c='d'", cmd_output['properties'])
6870

6971
def test_image_unset(self):
70-
opts = self.get_opts(["name", "tags", "properties"])
7172
self.openstack('image set --tag 01 ' + self.NAME)
73+
cmd_output = json.loads(self.openstack(
74+
'image show -f json ' + self.NAME))
75+
self.assertEqual('01', cmd_output['tags'])
7276
self.openstack('image unset --tag 01 ' + self.NAME)
7377
# test_image_metadata has set image properties "a" and "c"
7478
self.openstack('image unset --property a --property c ' + self.NAME)
75-
raw_output = self.openstack('image show ' + self.NAME + opts)
76-
self.assertEqual(self.NAME + "\n\n", raw_output)
79+
cmd_output = json.loads(self.openstack(
80+
'image show -f json ' + self.NAME))
81+
self.assertEqual(self.NAME, cmd_output['name'])
82+
self.assertEqual('', cmd_output['tags'])
83+
self.assertNotIn('properties', cmd_output)
7784

7885
def test_image_members(self):
79-
opts = self.get_opts(['project_id'])
80-
my_project_id = self.openstack('token issue' + opts).strip()
86+
cmd_output = json.loads(self.openstack('token issue -f json'))
87+
my_project_id = cmd_output['project_id']
8188
self.openstack(
8289
'image add project {} {}'.format(self.NAME, my_project_id))
8390

8491
self.openstack(
8592
'image set --accept ' + self.NAME)
86-
shared_img_list = self.parse_listing(
87-
self.openstack('image list --shared')
88-
)
93+
shared_img_list = json.loads(self.openstack(
94+
'image list --shared -f json'))
8995
self.assertIn(self.NAME, [img['Name'] for img in shared_img_list])
9096

9197
self.openstack(
9298
'image set --reject ' + self.NAME)
93-
shared_img_list = self.parse_listing(
94-
self.openstack('image list --shared', self.get_opts(['name']))
95-
)
99+
shared_img_list = json.loads(self.openstack(
100+
'image list --shared -f json'))
96101

97102
self.openstack(
98103
'image remove project {} {}'.format(self.NAME, my_project_id))

0 commit comments

Comments
 (0)