diff options
| author | Sheel Rana <ranasheel2000@gmail.com> | 2016-03-30 08:37:22 +0530 |
|---|---|---|
| committer | Sheel Rana <ranasheel2000@gmail.com> | 2016-04-11 12:53:15 +0000 |
| commit | be2d2a1b8da02d6b8ab05240e4ab61b26f65e442 (patch) | |
| tree | 62915a903824ab2f6bbc27e5459bbf910011b257 /openstackclient/tests | |
| parent | 9e7f0cf1a544e13d472f49b64d1c5320f6f8d08c (diff) | |
| download | python-openstackclient-be2d2a1b8da02d6b8ab05240e4ab61b26f65e442.tar.gz | |
Add support for setting volume-type-access
OSC does not support to set volume type access to project.
This patch will provide support for adding volume type access
to existing project.
Closes-Bug:#1554889
Implements: bp cinder-command-support
Change-Id: Ie36e202bdde7de36eb263a476eb66699d82f7565
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/volume/v2/fakes.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/volume/v2/test_type.py | 66 |
2 files changed, 68 insertions, 0 deletions
diff --git a/openstackclient/tests/volume/v2/fakes.py b/openstackclient/tests/volume/v2/fakes.py index 97bbc59b..3c238d10 100644 --- a/openstackclient/tests/volume/v2/fakes.py +++ b/openstackclient/tests/volume/v2/fakes.py @@ -243,6 +243,8 @@ class FakeVolumeClient(object): self.backups.resource_class = fakes.FakeResource(None, {}) self.volume_types = mock.Mock() self.volume_types.resource_class = fakes.FakeResource(None, {}) + self.volume_type_access = mock.Mock() + self.volume_type_access.resource_class = fakes.FakeResource(None, {}) self.restores = mock.Mock() self.restores.resource_class = fakes.FakeResource(None, {}) self.qos_specs = mock.Mock() diff --git a/openstackclient/tests/volume/v2/test_type.py b/openstackclient/tests/volume/v2/test_type.py index b014706b..448da432 100644 --- a/openstackclient/tests/volume/v2/test_type.py +++ b/openstackclient/tests/volume/v2/test_type.py @@ -15,6 +15,8 @@ import copy from openstackclient.tests import fakes +from openstackclient.tests.identity.v3 import fakes as identity_fakes +from openstackclient.tests import utils as tests_utils from openstackclient.tests.volume.v2 import fakes as volume_fakes from openstackclient.volume.v2 import volume_type @@ -41,6 +43,13 @@ class TestType(volume_fakes.TestVolume): self.types_mock = self.app.client_manager.volume.volume_types self.types_mock.reset_mock() + self.types_access_mock = ( + self.app.client_manager.volume.volume_type_access) + self.types_access_mock.reset_mock() + + self.projects_mock = self.app.client_manager.identity.projects + self.projects_mock.reset_mock() + class TestTypeCreate(TestType): @@ -211,6 +220,13 @@ class TestTypeSet(TestType): loaded=True, ) + # Return a project + self.projects_mock.get.return_value = fakes.FakeResource( + None, + copy.deepcopy(identity_fakes.PROJECT), + loaded=True, + ) + # Get the command object to test self.cmd = volume_type.SetVolumeType(self.app, None) @@ -286,6 +302,56 @@ class TestTypeSet(TestType): self.assertIn('myprop', result) self.assertEqual('myvalue', result['myprop']) + def test_type_set_not_called_without_project_argument(self): + arglist = [ + '--project', '', + volume_fakes.type_id, + ] + verifylist = [ + ('project', ''), + ('volume_type', volume_fakes.type_id), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + result = self.cmd.take_action(parsed_args) + self.assertIsNone(result) + + self.assertFalse(self.types_access_mock.add_project_access.called) + + def test_type_set_failed_with_missing_volume_type_argument(self): + arglist = [ + '--project', 'identity_fakes.project_id', + ] + verifylist = [ + ('project', 'identity_fakes.project_id'), + ] + + self.assertRaises(tests_utils.ParserException, + self.check_parser, + self.cmd, + arglist, + verifylist) + + def test_type_set_project_access(self): + arglist = [ + '--project', identity_fakes.project_id, + volume_fakes.type_id, + ] + verifylist = [ + ('project', identity_fakes.project_id), + ('volume_type', volume_fakes.type_id), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + result = self.cmd.take_action(parsed_args) + self.assertIsNone(result) + + self.types_access_mock.add_project_access.assert_called_with( + volume_fakes.type_id, + identity_fakes.project_id, + ) + class TestTypeShow(TestType): |
