1010# License for the specific language governing permissions and limitations
1111# under the License.
1212
13+ import json
1314import os
1415import 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\n 4\n 5\n " + self .NAME + '\n public\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 + "\n a='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