Skip to content

Commit b50ff9d

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add image show tests"
2 parents 9561420 + 47791a1 commit b50ff9d

4 files changed

Lines changed: 166 additions & 8 deletions

File tree

‎openstackclient/tests/compute/v2/test_server.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -361,14 +361,14 @@ def test_server_image_create_no_options(self):
361361
compute_fakes.server_name,
362362
)
363363

364-
collist = ('id', 'is_public', 'name', 'owner', 'protected')
364+
collist = ('id', 'name', 'owner', 'protected', 'visibility')
365365
self.assertEqual(collist, columns)
366366
datalist = (
367367
image_fakes.image_id,
368-
image_fakes.image_public,
369368
image_fakes.image_name,
370369
image_fakes.image_owner,
371370
image_fakes.image_protected,
371+
image_fakes.image_visibility,
372372
)
373373
self.assertEqual(datalist, data)
374374

@@ -392,14 +392,14 @@ def test_server_image_create_name(self):
392392
'img-nam',
393393
)
394394

395-
collist = ('id', 'is_public', 'name', 'owner', 'protected')
395+
collist = ('id', 'name', 'owner', 'protected', 'visibility')
396396
self.assertEqual(collist, columns)
397397
datalist = (
398398
image_fakes.image_id,
399-
image_fakes.image_public,
400399
image_fakes.image_name,
401400
image_fakes.image_owner,
402401
image_fakes.image_protected,
402+
image_fakes.image_visibility,
403403
)
404404
self.assertEqual(datalist, data)
405405

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,3 +659,36 @@ def test_image_set_properties(self):
659659
image_fakes.image_id,
660660
**kwargs
661661
)
662+
663+
664+
class TestImageShow(TestImage):
665+
666+
def setUp(self):
667+
super(TestImageShow, self).setUp()
668+
669+
self.images_mock.get.return_value = fakes.FakeResource(
670+
None,
671+
copy.deepcopy(image_fakes.IMAGE),
672+
loaded=True,
673+
)
674+
675+
# Get the command object to test
676+
self.cmd = image.ShowImage(self.app, None)
677+
678+
def test_image_show(self):
679+
arglist = [
680+
image_fakes.image_id,
681+
]
682+
verifylist = [
683+
('image', image_fakes.image_id),
684+
]
685+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
686+
687+
# DisplayCommandBase.take_action() returns two tuples
688+
columns, data = self.cmd.take_action(parsed_args)
689+
self.images_mock.get.assert_called_with(
690+
image_fakes.image_id,
691+
)
692+
693+
self.assertEqual(image_fakes.IMAGE_columns, columns)
694+
self.assertEqual(image_fakes.IMAGE_data, data)

‎openstackclient/tests/image/v2/fakes.py‎

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,105 @@
1919
from openstackclient.tests import utils
2020

2121

22-
image_id = 'im1'
22+
image_id = '0f41529e-7c12-4de8-be2d-181abb825b3c'
2323
image_name = 'graven'
2424
image_owner = 'baal'
25-
image_public = False
2625
image_protected = False
26+
image_visibility = 'public'
2727

2828
IMAGE = {
2929
'id': image_id,
3030
'name': image_name,
31-
'is_public': image_public,
3231
'owner': image_owner,
3332
'protected': image_protected,
33+
'visibility': image_visibility,
34+
}
35+
36+
IMAGE_columns = tuple(sorted(IMAGE))
37+
IMAGE_data = tuple((IMAGE[x] for x in sorted(IMAGE)))
38+
39+
# Just enough v2 schema to do some testing
40+
IMAGE_schema = {
41+
"additionalProperties": {
42+
"type": "string"
43+
},
44+
"name": "image",
45+
"links": [
46+
{
47+
"href": "{self}",
48+
"rel": "self"
49+
},
50+
{
51+
"href": "{file}",
52+
"rel": "enclosure"
53+
},
54+
{
55+
"href": "{schema}",
56+
"rel": "describedby"
57+
}
58+
],
59+
"properties": {
60+
"id": {
61+
"pattern": "^([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}$", # noqa
62+
"type": "string",
63+
"description": "An identifier for the image"
64+
},
65+
"name": {
66+
"type": [
67+
"null",
68+
"string"
69+
],
70+
"description": "Descriptive name for the image",
71+
"maxLength": 255
72+
},
73+
"owner": {
74+
"type": [
75+
"null",
76+
"string"
77+
],
78+
"description": "Owner of the image",
79+
"maxLength": 255
80+
},
81+
"protected": {
82+
"type": "boolean",
83+
"description": "If true, image will not be deletable."
84+
},
85+
"self": {
86+
"type": "string",
87+
"description": "(READ-ONLY)"
88+
},
89+
"schema": {
90+
"type": "string",
91+
"description": "(READ-ONLY)"
92+
},
93+
"size": {
94+
"type": [
95+
"null",
96+
"integer"
97+
],
98+
"description": "Size of image file in bytes (READ-ONLY)"
99+
},
100+
"status": {
101+
"enum": [
102+
"queued",
103+
"saving",
104+
"active",
105+
"killed",
106+
"deleted",
107+
"pending_delete"
108+
],
109+
"type": "string",
110+
"description": "Status of the image (READ-ONLY)"
111+
},
112+
"visibility": {
113+
"enum": [
114+
"public",
115+
"private"
116+
],
117+
"type": "string",
118+
"description": "Scope of image accessibility"
119+
},
120+
}
34121
}
35122

36123

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

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
import copy
1717
import mock
1818

19+
import warlock
20+
21+
from glanceclient.v2 import schemas
1922
from openstackclient.image.v2 import image
2023
from openstackclient.tests import fakes
2124
from openstackclient.tests.image.v2 import fakes as image_fakes
@@ -223,7 +226,7 @@ def test_image_list_long_option(self):
223226
'',
224227
'',
225228
'',
226-
'',
229+
'public',
227230
False,
228231
image_fakes.image_owner,
229232
'',
@@ -293,3 +296,38 @@ def test_image_list_sort_option(self, si_mock):
293296
image_fakes.image_name
294297
), )
295298
self.assertEqual(datalist, tuple(data))
299+
300+
301+
class TestImageShow(TestImage):
302+
303+
def setUp(self):
304+
super(TestImageShow, self).setUp()
305+
306+
# Set up the schema
307+
self.model = warlock.model_factory(
308+
image_fakes.IMAGE_schema,
309+
schemas.SchemaBasedModel,
310+
)
311+
312+
self.images_mock.get.return_value = self.model(**image_fakes.IMAGE)
313+
314+
# Get the command object to test
315+
self.cmd = image.ShowImage(self.app, None)
316+
317+
def test_image_show(self):
318+
arglist = [
319+
image_fakes.image_id,
320+
]
321+
verifylist = [
322+
('image', image_fakes.image_id),
323+
]
324+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
325+
326+
# DisplayCommandBase.take_action() returns two tuples
327+
columns, data = self.cmd.take_action(parsed_args)
328+
self.images_mock.get.assert_called_with(
329+
image_fakes.image_id,
330+
)
331+
332+
self.assertEqual(image_fakes.IMAGE_columns, columns)
333+
self.assertEqual(image_fakes.IMAGE_data, data)

0 commit comments

Comments
 (0)