diff options
| author | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-07-07 21:27:22 +0800 |
|---|---|---|
| committer | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-07-22 10:20:18 +0800 |
| commit | b0c317ebdd5e5f2626ce2fbd495149336fe5df7e (patch) | |
| tree | b9f1430430d6c0ba3bca9f023341b7f61c8f3729 /openstackclient/tests/compute/v2 | |
| parent | 55c1c575d63f4e9e6fc3f4dbb6c572e841b513d9 (diff) | |
| download | python-openstackclient-b0c317ebdd5e5f2626ce2fbd495149336fe5df7e.tar.gz | |
Add Support for showing flavor access list
Add a attribute "access_project_id" for flavor object to
display the access project id list by using "flavor show"
command.
Change-Id: I7f0c152b816e0ca2e32e47f9b5c1aa7663d33b6d
Closes-Bug:#1575461
Diffstat (limited to 'openstackclient/tests/compute/v2')
| -rw-r--r-- | openstackclient/tests/compute/v2/fakes.py | 29 | ||||
| -rw-r--r-- | openstackclient/tests/compute/v2/test_flavor.py | 45 |
2 files changed, 73 insertions, 1 deletions
diff --git a/openstackclient/tests/compute/v2/fakes.py b/openstackclient/tests/compute/v2/fakes.py index 76402476..e40e62a7 100644 --- a/openstackclient/tests/compute/v2/fakes.py +++ b/openstackclient/tests/compute/v2/fakes.py @@ -787,6 +787,35 @@ class FakeFlavor(object): return mock.MagicMock(side_effect=flavors) +class FakeFlavorAccess(object): + """Fake one or more flavor accesses.""" + + @staticmethod + def create_one_flavor_access(attrs=None): + """Create a fake flavor access. + + :param Dictionary attrs: + A dictionary with all attributes + :return: + A FakeResource object, with flavor_id, tenat_id + """ + attrs = attrs or {} + + # Set default attributes. + flavor_access_info = { + 'flavor_id': 'flavor-id-' + uuid.uuid4().hex, + 'tenant_id': 'tenant-id-' + uuid.uuid4().hex, + } + + # Overwrite default attributes. + flavor_access_info.update(attrs) + + flavor_access = fakes.FakeResource( + info=copy.deepcopy(flavor_access_info), loaded=True) + + return flavor_access + + class FakeKeypair(object): """Fake one or more keypairs.""" diff --git a/openstackclient/tests/compute/v2/test_flavor.py b/openstackclient/tests/compute/v2/test_flavor.py index 20ae8706..40cd17c1 100644 --- a/openstackclient/tests/compute/v2/test_flavor.py +++ b/openstackclient/tests/compute/v2/test_flavor.py @@ -619,11 +619,13 @@ class TestFlavorSet(TestFlavor): class TestFlavorShow(TestFlavor): # Return value of self.flavors_mock.find(). + flavor_access = compute_fakes.FakeFlavorAccess.create_one_flavor_access() flavor = compute_fakes.FakeFlavor.create_one_flavor() columns = ( 'OS-FLV-DISABLED:disabled', 'OS-FLV-EXT-DATA:ephemeral', + 'access_project_ids', 'disk', 'id', 'name', @@ -638,6 +640,7 @@ class TestFlavorShow(TestFlavor): data = ( flavor.disabled, flavor.ephemeral, + None, flavor.disk, flavor.id, flavor.name, @@ -655,6 +658,7 @@ class TestFlavorShow(TestFlavor): # Return value of _find_resource() self.flavors_mock.find.return_value = self.flavor self.flavors_mock.get.side_effect = exceptions.NotFound(None) + self.flavor_access_mock.list.return_value = [self.flavor_access] self.cmd = flavor.ShowFlavor(self.app, None) def test_show_no_options(self): @@ -665,7 +669,7 @@ class TestFlavorShow(TestFlavor): self.assertRaises(tests_utils.ParserException, self.check_parser, self.cmd, arglist, verifylist) - def test_flavor_show(self): + def test_public_flavor_show(self): arglist = [ self.flavor.name, ] @@ -680,6 +684,45 @@ class TestFlavorShow(TestFlavor): self.assertEqual(self.columns, columns) self.assertEqual(self.data, data) + def test_private_flavor_show(self): + private_flavor = compute_fakes.FakeFlavor.create_one_flavor( + attrs={ + 'os-flavor-access:is_public': False, + } + ) + self.flavors_mock.find.return_value = private_flavor + + arglist = [ + private_flavor.name, + ] + verifylist = [ + ('flavor', private_flavor.name), + ] + + data_with_project = ( + private_flavor.disabled, + private_flavor.ephemeral, + self.flavor_access.tenant_id, + private_flavor.disk, + private_flavor.id, + private_flavor.name, + private_flavor.is_public, + utils.format_dict(private_flavor.get_keys()), + private_flavor.ram, + private_flavor.rxtx_factor, + private_flavor.swap, + private_flavor.vcpus, + ) + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + columns, data = self.cmd.take_action(parsed_args) + + self.flavor_access_mock.list.assert_called_with( + flavor=private_flavor.id) + self.assertEqual(self.columns, columns) + self.assertEqual(data_with_project, data) + class TestFlavorUnset(TestFlavor): |
