summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/api/test_object_store_v1.py9
-rw-r--r--openstackclient/tests/compute/v2/test_server.py6
-rw-r--r--openstackclient/tests/identity/v3/test_role.py38
-rw-r--r--openstackclient/tests/image/v1/test_image.py12
-rw-r--r--openstackclient/tests/image/v2/fakes.py15
-rw-r--r--openstackclient/tests/image/v2/test_image.py289
-rw-r--r--openstackclient/tests/object/v1/test_container_all.py3
-rw-r--r--openstackclient/tests/object/v1/test_object_all.py2
8 files changed, 311 insertions, 63 deletions
diff --git a/openstackclient/tests/api/test_object_store_v1.py b/openstackclient/tests/api/test_object_store_v1.py
index 323bb8e0..0f7c4559 100644
--- a/openstackclient/tests/api/test_object_store_v1.py
+++ b/openstackclient/tests/api/test_object_store_v1.py
@@ -157,11 +157,6 @@ class TestContainer(TestObjectAPIv1):
'container': 'qaz',
'object_count': '1',
'bytes_used': '577',
- 'meta-owner': FAKE_ACCOUNT,
- 'read_acl': None,
- 'write_acl': None,
- 'sync_to': None,
- 'sync_key': None,
}
self.requests_mock.register_uri(
'HEAD',
@@ -323,10 +318,8 @@ class TestObject(TestObjectAPIv1):
'content-type': 'text/alpha',
'content-length': '577',
'last-modified': '20130101',
- 'meta-owner': FAKE_ACCOUNT,
'etag': 'qaz',
- 'wife': 'Wilma',
- 'x-tra-header': 'yabba-dabba-do',
+ 'properties': {'wife': 'Wilma'},
}
self.requests_mock.register_uri(
'HEAD',
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index 4df18f05..1e99bcd0 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -410,13 +410,14 @@ class TestServerImageCreate(TestServer):
compute_fakes.server_name,
)
- collist = ('id', 'name', 'owner', 'protected', 'visibility')
+ collist = ('id', 'name', 'owner', 'protected', 'tags', 'visibility')
self.assertEqual(collist, columns)
datalist = (
image_fakes.image_id,
image_fakes.image_name,
image_fakes.image_owner,
image_fakes.image_protected,
+ image_fakes.image_tags,
image_fakes.image_visibility,
)
self.assertEqual(datalist, data)
@@ -441,13 +442,14 @@ class TestServerImageCreate(TestServer):
'img-nam',
)
- collist = ('id', 'name', 'owner', 'protected', 'visibility')
+ collist = ('id', 'name', 'owner', 'protected', 'tags', 'visibility')
self.assertEqual(collist, columns)
datalist = (
image_fakes.image_id,
image_fakes.image_name,
image_fakes.image_owner,
image_fakes.image_protected,
+ image_fakes.image_tags,
image_fakes.image_visibility,
)
self.assertEqual(datalist, data)
diff --git a/openstackclient/tests/identity/v3/test_role.py b/openstackclient/tests/identity/v3/test_role.py
index 4a0ba066..8ad4b099 100644
--- a/openstackclient/tests/identity/v3/test_role.py
+++ b/openstackclient/tests/identity/v3/test_role.py
@@ -367,6 +367,39 @@ class TestRoleList(TestRole):
), )
self.assertEqual(datalist, tuple(data))
+ def test_user_list_inherited(self):
+ arglist = [
+ '--user', identity_fakes.user_id,
+ '--inherited',
+ ]
+ verifylist = [
+ ('user', identity_fakes.user_id),
+ ('inherited', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'domain': 'default',
+ 'user': self.users_mock.get(),
+ 'os_inherit_extension_inherited': True,
+ }
+ # RoleManager.list(user=, group=, domain=, project=, **kwargs)
+ self.roles_mock.list.assert_called_with(
+ **kwargs
+ )
+
+ collist = ('ID', 'Name')
+ self.assertEqual(collist, columns)
+ datalist = ((
+ identity_fakes.role_id,
+ identity_fakes.role_name,
+ ), )
+ self.assertEqual(datalist, tuple(data))
+
def test_user_list_user(self):
arglist = [
'--user', identity_fakes.user_id,
@@ -383,6 +416,7 @@ class TestRoleList(TestRole):
kwargs = {
'domain': 'default',
'user': self.users_mock.get(),
+ 'os_inherit_extension_inherited': False
}
# RoleManager.list(user=, group=, domain=, project=, **kwargs)
self.roles_mock.list.assert_called_with(
@@ -415,6 +449,7 @@ class TestRoleList(TestRole):
kwargs = {
'domain': self.domains_mock.get(),
'user': self.users_mock.get(),
+ 'os_inherit_extension_inherited': False
}
# RoleManager.list(user=, group=, domain=, project=, **kwargs)
self.roles_mock.list.assert_called_with(
@@ -449,6 +484,7 @@ class TestRoleList(TestRole):
kwargs = {
'domain': self.domains_mock.get(),
'group': self.groups_mock.get(),
+ 'os_inherit_extension_inherited': False
}
# RoleManager.list(user=, group=, domain=, project=, **kwargs)
self.roles_mock.list.assert_called_with(
@@ -483,6 +519,7 @@ class TestRoleList(TestRole):
kwargs = {
'project': self.projects_mock.get(),
'user': self.users_mock.get(),
+ 'os_inherit_extension_inherited': False
}
# RoleManager.list(user=, group=, domain=, project=, **kwargs)
self.roles_mock.list.assert_called_with(
@@ -517,6 +554,7 @@ class TestRoleList(TestRole):
kwargs = {
'project': self.projects_mock.get(),
'group': self.groups_mock.get(),
+ 'os_inherit_extension_inherited': False
}
# RoleManager.list(user=, group=, domain=, project=, **kwargs)
self.roles_mock.list.assert_called_with(
diff --git a/openstackclient/tests/image/v1/test_image.py b/openstackclient/tests/image/v1/test_image.py
index a79df8b4..d10d3b15 100644
--- a/openstackclient/tests/image/v1/test_image.py
+++ b/openstackclient/tests/image/v1/test_image.py
@@ -499,8 +499,7 @@ class TestImageSet(TestImage):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- # DisplayCommandBase.take_action() returns two tuples
- columns, data = self.cmd.take_action(parsed_args)
+ self.cmd.take_action(parsed_args)
kwargs = {
'name': 'new-name',
@@ -517,9 +516,6 @@ class TestImageSet(TestImage):
**kwargs
)
- self.assertEqual(image_fakes.IMAGE_columns, columns)
- self.assertEqual(image_fakes.IMAGE_data, data)
-
def test_image_set_bools1(self):
arglist = [
'--protected',
@@ -644,8 +640,7 @@ class TestImageSet(TestImage):
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- # DisplayCommandBase.take_action() returns two tuples
- columns, data = self.cmd.take_action(parsed_args)
+ self.cmd.take_action(parsed_args)
# VolumeManager.upload_to_image(volume, force, image_name,
# container_format, disk_format)
@@ -664,9 +659,6 @@ class TestImageSet(TestImage):
volume='volly',
)
- self.assertEqual(image_fakes.IMAGE_columns, columns)
- self.assertEqual(image_fakes.IMAGE_data, data)
-
class TestImageShow(TestImage):
diff --git a/openstackclient/tests/image/v2/fakes.py b/openstackclient/tests/image/v2/fakes.py
index 1a9e301a..11ad455d 100644
--- a/openstackclient/tests/image/v2/fakes.py
+++ b/openstackclient/tests/image/v2/fakes.py
@@ -13,6 +13,7 @@
# under the License.
#
+import copy
import mock
from openstackclient.tests import fakes
@@ -25,6 +26,7 @@ image_name = 'graven'
image_owner = 'baal'
image_protected = False
image_visibility = 'public'
+image_tags = []
IMAGE = {
'id': image_id,
@@ -32,11 +34,16 @@ IMAGE = {
'owner': image_owner,
'protected': image_protected,
'visibility': image_visibility,
+ 'tags': image_tags
}
IMAGE_columns = tuple(sorted(IMAGE))
IMAGE_data = tuple((IMAGE[x] for x in sorted(IMAGE)))
+IMAGE_SHOW = copy.copy(IMAGE)
+IMAGE_SHOW['tags'] = ''
+IMAGE_SHOW_data = tuple((IMAGE_SHOW[x] for x in sorted(IMAGE_SHOW)))
+
member_status = 'pending'
MEMBER = {
'member_id': identity_fakes.project_id,
@@ -117,6 +124,14 @@ IMAGE_schema = {
"type": "string",
"description": "Status of the image (READ-ONLY)"
},
+ "tags": {
+ "items": {
+ "type": "string",
+ "maxLength": 255
+ },
+ "type": "array",
+ "description": "List of strings related to the image"
+ },
"visibility": {
"enum": [
"public",
diff --git a/openstackclient/tests/image/v2/test_image.py b/openstackclient/tests/image/v2/test_image.py
index 65d5e555..4ce85475 100644
--- a/openstackclient/tests/image/v2/test_image.py
+++ b/openstackclient/tests/image/v2/test_image.py
@@ -96,7 +96,7 @@ class TestImageCreate(TestImage):
)
self.assertEqual(image_fakes.IMAGE_columns, columns)
- self.assertEqual(image_fakes.IMAGE_data, data)
+ self.assertEqual(image_fakes.IMAGE_SHOW_data, data)
@mock.patch('glanceclient.common.utils.get_data_file', name='Open')
def test_image_reserve_options(self, mock_open):
@@ -151,7 +151,7 @@ class TestImageCreate(TestImage):
)
self.assertEqual(image_fakes.IMAGE_columns, columns)
- self.assertEqual(image_fakes.IMAGE_data, data)
+ self.assertEqual(image_fakes.IMAGE_SHOW_data, data)
@mock.patch('glanceclient.common.utils.get_data_file', name='Open')
def test_image_create_file(self, mock_open):
@@ -208,9 +208,9 @@ class TestImageCreate(TestImage):
)
self.assertEqual(image_fakes.IMAGE_columns, columns)
- self.assertEqual(image_fakes.IMAGE_data, data)
+ self.assertEqual(image_fakes.IMAGE_SHOW_data, data)
- def test_image_dead_options(self):
+ def test_image_create_dead_options(self):
arglist = [
'--owner', 'nobody',
@@ -639,11 +639,10 @@ class TestRemoveProjectImage(TestImage):
)
-class TestImageShow(TestImage):
+class TestImageSet(TestImage):
def setUp(self):
- super(TestImageShow, self).setUp()
-
+ super(TestImageSet, self).setUp()
# Set up the schema
self.model = warlock.model_factory(
image_fakes.IMAGE_schema,
@@ -651,33 +650,262 @@ class TestImageShow(TestImage):
)
self.images_mock.get.return_value = self.model(**image_fakes.IMAGE)
-
+ self.images_mock.update.return_value = self.model(**image_fakes.IMAGE)
# Get the command object to test
- self.cmd = image.ShowImage(self.app, None)
+ self.cmd = image.SetImage(self.app, None)
- def test_image_show(self):
+ def test_image_set_options(self):
arglist = [
+ '--name', 'new-name',
+ '--owner', 'new-owner',
+ '--min-disk', '2',
+ '--min-ram', '4',
+ '--container-format', 'ovf',
+ '--disk-format', 'vmdk',
image_fakes.image_id,
]
verifylist = [
+ ('name', 'new-name'),
+ ('owner', 'new-owner'),
+ ('min_disk', 2),
+ ('min_ram', 4),
+ ('container_format', 'ovf'),
+ ('disk_format', 'vmdk'),
('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(
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'name': 'new-name',
+ 'owner': 'new-owner',
+ 'min_disk': 2,
+ 'min_ram': 4,
+ 'container_format': 'ovf',
+ 'disk_format': 'vmdk',
+ }
+ # ImageManager.update(image, **kwargs)
+ self.images_mock.update.assert_called_with(
+ image_fakes.image_id, **kwargs)
+
+ def test_image_set_bools1(self):
+ arglist = [
+ '--protected',
+ '--private',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('protected', True),
+ ('unprotected', False),
+ ('public', False),
+ ('private', True),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'protected': True,
+ 'visibility': 'private',
+ }
+ # ImageManager.update(image, **kwargs)
+ self.images_mock.update.assert_called_with(
image_fakes.image_id,
+ **kwargs
)
- self.assertEqual(image_fakes.IMAGE_columns, columns)
- self.assertEqual(image_fakes.IMAGE_data, data)
+ def test_image_set_bools2(self):
+ arglist = [
+ '--unprotected',
+ '--public',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('protected', False),
+ ('unprotected', True),
+ ('public', True),
+ ('private', False),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
-class TestImageSet(TestImage):
+ kwargs = {
+ 'protected': False,
+ 'visibility': 'public',
+ }
+ # ImageManager.update(image, **kwargs)
+ self.images_mock.update.assert_called_with(
+ image_fakes.image_id,
+ **kwargs
+ )
+
+ def test_image_set_properties(self):
+ arglist = [
+ '--property', 'Alpha=1',
+ '--property', 'Beta=2',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('properties', {'Alpha': '1', 'Beta': '2'}),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'Alpha': '1',
+ 'Beta': '2',
+ }
+ # ImageManager.update(image, **kwargs)
+ self.images_mock.update.assert_called_with(
+ image_fakes.image_id,
+ **kwargs
+ )
+
+ def test_image_set_fake_properties(self):
+ arglist = [
+ '--architecture', 'z80',
+ '--instance-id', '12345',
+ '--kernel-id', '67890',
+ '--os-distro', 'cpm',
+ '--os-version', '2.2H',
+ '--ramdisk-id', 'xyzpdq',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('architecture', 'z80'),
+ ('instance_id', '12345'),
+ ('kernel_id', '67890'),
+ ('os_distro', 'cpm'),
+ ('os_version', '2.2H'),
+ ('ramdisk_id', 'xyzpdq'),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'architecture': 'z80',
+ 'instance_id': '12345',
+ 'kernel_id': '67890',
+ 'os_distro': 'cpm',
+ 'os_version': '2.2H',
+ 'ramdisk_id': 'xyzpdq',
+ }
+ # ImageManager.update(image, **kwargs)
+ self.images_mock.update.assert_called_with(
+ image_fakes.image_id,
+ **kwargs
+ )
+
+ def test_image_set_tag(self):
+ arglist = [
+ '--tag', 'test-tag',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('tags', ['test-tag']),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'tags': ['test-tag'],
+ }
+ # ImageManager.update(image, **kwargs)
+ self.images_mock.update.assert_called_with(
+ image_fakes.image_id,
+ **kwargs
+ )
+
+ def test_image_set_tag_merge(self):
+ old_image = copy.copy(image_fakes.IMAGE)
+ old_image['tags'] = ['old1', 'new2']
+ self.images_mock.get.return_value = self.model(**old_image)
+ arglist = [
+ '--tag', 'test-tag',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('tags', ['test-tag']),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'tags': ['old1', 'new2', 'test-tag'],
+ }
+ # ImageManager.update(image, **kwargs)
+ a, k = self.images_mock.update.call_args
+ self.assertEqual(image_fakes.image_id, a[0])
+ self.assertTrue('tags' in k)
+ self.assertEqual(set(kwargs['tags']), set(k['tags']))
+
+ def test_image_set_tag_merge_dupe(self):
+ old_image = copy.copy(image_fakes.IMAGE)
+ old_image['tags'] = ['old1', 'new2']
+ self.images_mock.get.return_value = self.model(**old_image)
+ arglist = [
+ '--tag', 'old1',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('tags', ['old1']),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ self.cmd.take_action(parsed_args)
+
+ kwargs = {
+ 'tags': ['new2', 'old1'],
+ }
+ # ImageManager.update(image, **kwargs)
+ a, k = self.images_mock.update.call_args
+ self.assertEqual(image_fakes.image_id, a[0])
+ self.assertTrue('tags' in k)
+ self.assertEqual(set(kwargs['tags']), set(k['tags']))
+
+ def test_image_set_dead_options(self):
+
+ arglist = [
+ '--visibility', '1-mile',
+ image_fakes.image_name,
+ ]
+ verifylist = [
+ ('visibility', '1-mile'),
+ ('image', image_fakes.image_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ self.assertRaises(
+ exceptions.CommandError,
+ self.cmd.take_action, parsed_args)
+
+
+class TestImageShow(TestImage):
def setUp(self):
- super(TestImageSet, self).setUp()
+ super(TestImageShow, self).setUp()
+
# Set up the schema
self.model = warlock.model_factory(
image_fakes.IMAGE_schema,
@@ -685,39 +913,24 @@ class TestImageSet(TestImage):
)
self.images_mock.get.return_value = self.model(**image_fakes.IMAGE)
- self.images_mock.update.return_value = self.model(**image_fakes.IMAGE)
+
# Get the command object to test
- self.cmd = image.SetImage(self.app, None)
+ self.cmd = image.ShowImage(self.app, None)
- def test_image_set_options(self):
+ def test_image_show(self):
arglist = [
- '--name', 'new-name',
- '--owner', 'new-owner',
- '--min-disk', '2',
- '--min-ram', '4',
image_fakes.image_id,
]
verifylist = [
- ('name', 'new-name'),
- ('owner', 'new-owner'),
- ('min_disk', 2),
- ('min_ram', 4),
('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)
-
- kwargs = {
- 'name': 'new-name',
- 'owner': 'new-owner',
- 'min_disk': 2,
- 'min_ram': 4
- }
- # ImageManager.update(image, **kwargs)
- self.images_mock.update.assert_called_with(
- image_fakes.image_id, **kwargs)
+ 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)
+ self.assertEqual(image_fakes.IMAGE_SHOW_data, data)
diff --git a/openstackclient/tests/object/v1/test_container_all.py b/openstackclient/tests/object/v1/test_container_all.py
index 4477f2e0..69fc0f39 100644
--- a/openstackclient/tests/object/v1/test_container_all.py
+++ b/openstackclient/tests/object/v1/test_container_all.py
@@ -286,7 +286,6 @@ class TestContainerShow(TestContainerAll):
def test_object_show_container(self):
headers = {
- 'x-container-meta-owner': object_fakes.ACCOUNT_ID,
'x-container-object-count': '42',
'x-container-bytes-used': '123',
'x-container-read': 'qaz',
@@ -316,7 +315,6 @@ class TestContainerShow(TestContainerAll):
'account',
'bytes_used',
'container',
- 'meta-owner',
'object_count',
'read_acl',
'sync_key',
@@ -328,7 +326,6 @@ class TestContainerShow(TestContainerAll):
object_fakes.ACCOUNT_ID,
'123',
'ernie',
- object_fakes.ACCOUNT_ID,
'42',
'qaz',
'rfv',
diff --git a/openstackclient/tests/object/v1/test_object_all.py b/openstackclient/tests/object/v1/test_object_all.py
index 41fe6324..7a76ab76 100644
--- a/openstackclient/tests/object/v1/test_object_all.py
+++ b/openstackclient/tests/object/v1/test_object_all.py
@@ -160,7 +160,6 @@ class TestObjectShow(TestObjectAll):
'content-type',
'etag',
'last-modified',
- 'meta-owner',
'object',
'x-object-manifest',
)
@@ -172,7 +171,6 @@ class TestObjectShow(TestObjectAll):
'text/plain',
'4c4e39a763d58392724bccf76a58783a',
'yesterday',
- object_fakes.ACCOUNT_ID,
object_fakes.object_name_1,
'manifest',
)