Merge "Add image show tests"

This commit is contained in:
Jenkins 2015-05-01 21:13:03 +00:00 committed by Gerrit Code Review
commit b50ff9d3c5
4 changed files with 166 additions and 8 deletions

View File

@ -361,14 +361,14 @@ class TestServerImageCreate(TestServer):
compute_fakes.server_name, compute_fakes.server_name,
) )
collist = ('id', 'is_public', 'name', 'owner', 'protected') collist = ('id', 'name', 'owner', 'protected', 'visibility')
self.assertEqual(collist, columns) self.assertEqual(collist, columns)
datalist = ( datalist = (
image_fakes.image_id, image_fakes.image_id,
image_fakes.image_public,
image_fakes.image_name, image_fakes.image_name,
image_fakes.image_owner, image_fakes.image_owner,
image_fakes.image_protected, image_fakes.image_protected,
image_fakes.image_visibility,
) )
self.assertEqual(datalist, data) self.assertEqual(datalist, data)
@ -392,14 +392,14 @@ class TestServerImageCreate(TestServer):
'img-nam', 'img-nam',
) )
collist = ('id', 'is_public', 'name', 'owner', 'protected') collist = ('id', 'name', 'owner', 'protected', 'visibility')
self.assertEqual(collist, columns) self.assertEqual(collist, columns)
datalist = ( datalist = (
image_fakes.image_id, image_fakes.image_id,
image_fakes.image_public,
image_fakes.image_name, image_fakes.image_name,
image_fakes.image_owner, image_fakes.image_owner,
image_fakes.image_protected, image_fakes.image_protected,
image_fakes.image_visibility,
) )
self.assertEqual(datalist, data) self.assertEqual(datalist, data)

View File

@ -659,3 +659,36 @@ class TestImageSet(TestImage):
image_fakes.image_id, image_fakes.image_id,
**kwargs **kwargs
) )
class TestImageShow(TestImage):
def setUp(self):
super(TestImageShow, self).setUp()
self.images_mock.get.return_value = fakes.FakeResource(
None,
copy.deepcopy(image_fakes.IMAGE),
loaded=True,
)
# Get the command object to test
self.cmd = image.ShowImage(self.app, None)
def test_image_show(self):
arglist = [
image_fakes.image_id,
]
verifylist = [
('image', image_fakes.image_id),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
# DisplayCommandBase.take_action() returns two tuples
columns, data = self.cmd.take_action(parsed_args)
self.images_mock.get.assert_called_with(
image_fakes.image_id,
)
self.assertEqual(image_fakes.IMAGE_columns, columns)
self.assertEqual(image_fakes.IMAGE_data, data)

View File

@ -19,18 +19,105 @@ from openstackclient.tests import fakes
from openstackclient.tests import utils from openstackclient.tests import utils
image_id = 'im1' image_id = '0f41529e-7c12-4de8-be2d-181abb825b3c'
image_name = 'graven' image_name = 'graven'
image_owner = 'baal' image_owner = 'baal'
image_public = False
image_protected = False image_protected = False
image_visibility = 'public'
IMAGE = { IMAGE = {
'id': image_id, 'id': image_id,
'name': image_name, 'name': image_name,
'is_public': image_public,
'owner': image_owner, 'owner': image_owner,
'protected': image_protected, 'protected': image_protected,
'visibility': image_visibility,
}
IMAGE_columns = tuple(sorted(IMAGE))
IMAGE_data = tuple((IMAGE[x] for x in sorted(IMAGE)))
# Just enough v2 schema to do some testing
IMAGE_schema = {
"additionalProperties": {
"type": "string"
},
"name": "image",
"links": [
{
"href": "{self}",
"rel": "self"
},
{
"href": "{file}",
"rel": "enclosure"
},
{
"href": "{schema}",
"rel": "describedby"
}
],
"properties": {
"id": {
"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
"type": "string",
"description": "An identifier for the image"
},
"name": {
"type": [
"null",
"string"
],
"description": "Descriptive name for the image",
"maxLength": 255
},
"owner": {
"type": [
"null",
"string"
],
"description": "Owner of the image",
"maxLength": 255
},
"protected": {
"type": "boolean",
"description": "If true, image will not be deletable."
},
"self": {
"type": "string",
"description": "(READ-ONLY)"
},
"schema": {
"type": "string",
"description": "(READ-ONLY)"
},
"size": {
"type": [
"null",
"integer"
],
"description": "Size of image file in bytes (READ-ONLY)"
},
"status": {
"enum": [
"queued",
"saving",
"active",
"killed",
"deleted",
"pending_delete"
],
"type": "string",
"description": "Status of the image (READ-ONLY)"
},
"visibility": {
"enum": [
"public",
"private"
],
"type": "string",
"description": "Scope of image accessibility"
},
}
} }

View File

@ -16,6 +16,9 @@
import copy import copy
import mock import mock
import warlock
from glanceclient.v2 import schemas
from openstackclient.image.v2 import image from openstackclient.image.v2 import image
from openstackclient.tests import fakes from openstackclient.tests import fakes
from openstackclient.tests.image.v2 import fakes as image_fakes from openstackclient.tests.image.v2 import fakes as image_fakes
@ -223,7 +226,7 @@ class TestImageList(TestImage):
'', '',
'', '',
'', '',
'', 'public',
False, False,
image_fakes.image_owner, image_fakes.image_owner,
'', '',
@ -293,3 +296,38 @@ class TestImageList(TestImage):
image_fakes.image_name image_fakes.image_name
), ) ), )
self.assertEqual(datalist, tuple(data)) self.assertEqual(datalist, tuple(data))
class TestImageShow(TestImage):
def setUp(self):
super(TestImageShow, self).setUp()
# Set up the schema
self.model = warlock.model_factory(
image_fakes.IMAGE_schema,
schemas.SchemaBasedModel,
)
self.images_mock.get.return_value = self.model(**image_fakes.IMAGE)
# Get the command object to test
self.cmd = image.ShowImage(self.app, None)
def test_image_show(self):
arglist = [
image_fakes.image_id,
]
verifylist = [
('image', image_fakes.image_id),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
# DisplayCommandBase.take_action() returns two tuples
columns, data = self.cmd.take_action(parsed_args)
self.images_mock.get.assert_called_with(
image_fakes.image_id,
)
self.assertEqual(image_fakes.IMAGE_columns, columns)
self.assertEqual(image_fakes.IMAGE_data, data)