diff options
| author | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-05-07 16:15:53 +0800 |
|---|---|---|
| committer | Huanxuan Ao <huanxuan.ao@easystack.cn> | 2016-05-11 10:08:47 +0800 |
| commit | aa5ff67e3fa2b9497218e9bdd4ac3fdf432e007c (patch) | |
| tree | bdb042bb60a8d7cfa2c11fc22d13a91d53078ef6 /openstackclient | |
| parent | 4cb5e0bc7959694db70d11c6be8589f1c20d787c (diff) | |
| download | python-openstackclient-aa5ff67e3fa2b9497218e9bdd4ac3fdf432e007c.tar.gz | |
Implement "address scope list" command
This patch add a command that supports
listing address scopes
Change-Id: Id14757011560cacf28011ba51841a8e23b824f33
Partial-Bug: #1566269
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/network/v2/address_scope.py | 27 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/fakes.py | 18 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/test_address_scope.py | 42 |
3 files changed, 87 insertions, 0 deletions
diff --git a/openstackclient/network/v2/address_scope.py b/openstackclient/network/v2/address_scope.py index 361fd360..dd43ef5b 100644 --- a/openstackclient/network/v2/address_scope.py +++ b/openstackclient/network/v2/address_scope.py @@ -113,3 +113,30 @@ class DeleteAddressScope(command.Command): client = self.app.client_manager.network obj = client.find_address_scope(parsed_args.address_scope) client.delete_address_scope(obj) + + +class ListAddressScope(command.Lister): + """List address scopes""" + + def take_action(self, parsed_args): + client = self.app.client_manager.network + columns = ( + 'id', + 'name', + 'ip_version', + 'shared', + 'tenant_id', + ) + column_headers = ( + 'ID', + 'Name', + 'IP Version', + 'Shared', + 'Project', + ) + data = client.address_scopes() + + return (column_headers, + (utils.get_item_properties( + s, columns, formatters={}, + ) for s in data)) diff --git a/openstackclient/tests/network/v2/fakes.py b/openstackclient/tests/network/v2/fakes.py index 5fd7ea3b..413ec7d2 100644 --- a/openstackclient/tests/network/v2/fakes.py +++ b/openstackclient/tests/network/v2/fakes.py @@ -107,6 +107,24 @@ class FakeAddressScope(object): return address_scope + @staticmethod + def create_address_scopes(attrs=None, count=2): + """Create multiple fake address scopes. + + :param Dictionary attrs: + A dictionary with all attributes + :param int count: + The number of address scopes to fake + :return: + A list of FakeResource objects faking the address scopes + """ + address_scopes = [] + for i in range(0, count): + address_scopes.append( + FakeAddressScope.create_one_address_scope(attrs)) + + return address_scopes + class FakeAvailabilityZone(object): """Fake one or more network availability zones (AZs).""" diff --git a/openstackclient/tests/network/v2/test_address_scope.py b/openstackclient/tests/network/v2/test_address_scope.py index 3168ea3f..d33013ce 100644 --- a/openstackclient/tests/network/v2/test_address_scope.py +++ b/openstackclient/tests/network/v2/test_address_scope.py @@ -193,3 +193,45 @@ class TestDeleteAddressScope(TestAddressScope): self.network.delete_address_scope.assert_called_once_with( self._address_scope) self.assertIsNone(result) + + +class TestListAddressScope(TestAddressScope): + + # The address scopes to list up. + address_scopes = ( + network_fakes.FakeAddressScope.create_address_scopes(count=3)) + columns = ( + 'ID', + 'Name', + 'IP Version', + 'Shared', + 'Project', + ) + data = [] + for scope in address_scopes: + data.append(( + scope.id, + scope.name, + scope.ip_version, + scope.shared, + scope.project_id, + )) + + def setUp(self): + super(TestListAddressScope, self).setUp() + self.network.address_scopes = mock.Mock( + return_value=self.address_scopes) + + # Get the command object to test + self.cmd = address_scope.ListAddressScope(self.app, self.namespace) + + def test_address_scope_list(self): + arglist = [] + verifylist = [] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.address_scopes.assert_called_once_with(**{}) + self.assertEqual(self.columns, columns) + self.assertEqual(self.data, list(data)) |
