diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-05-11 07:11:43 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-05-11 07:11:43 +0000 |
| commit | 94de0d3ebd18580f4faf9097322a47b2c7117aa1 (patch) | |
| tree | add9b3cd610b3cf735c519bdb3173106250cf072 /openstackclient | |
| parent | 0acb743611a3605fdb6b67218c0f2acbea0c215a (diff) | |
| parent | 32da111c1757a884466814ac000fb7e662e6da42 (diff) | |
| download | python-openstackclient-94de0d3ebd18580f4faf9097322a47b2c7117aa1.tar.gz | |
Merge "Implement "address scope show" command"
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/network/v2/address_scope.py | 24 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/test_address_scope.py | 53 |
2 files changed, 77 insertions, 0 deletions
diff --git a/openstackclient/network/v2/address_scope.py b/openstackclient/network/v2/address_scope.py index dd43ef5b..86f39c34 100644 --- a/openstackclient/network/v2/address_scope.py +++ b/openstackclient/network/v2/address_scope.py @@ -140,3 +140,27 @@ class ListAddressScope(command.Lister): (utils.get_item_properties( s, columns, formatters={}, ) for s in data)) + + +class ShowAddressScope(command.ShowOne): + """Display address scope details""" + + def get_parser(self, prog_name): + parser = super(ShowAddressScope, self).get_parser(prog_name) + parser.add_argument( + 'address_scope', + metavar="<address-scope>", + help=_("Address scope to display (name or ID)") + ) + + return parser + + def take_action(self, parsed_args): + client = self.app.client_manager.network + obj = client.find_address_scope( + parsed_args.address_scope, + ignore_missing=False) + columns = _get_columns(obj) + data = utils.get_item_properties(obj, columns, formatters={}) + + return columns, data diff --git a/openstackclient/tests/network/v2/test_address_scope.py b/openstackclient/tests/network/v2/test_address_scope.py index d33013ce..da658fef 100644 --- a/openstackclient/tests/network/v2/test_address_scope.py +++ b/openstackclient/tests/network/v2/test_address_scope.py @@ -235,3 +235,56 @@ class TestListAddressScope(TestAddressScope): self.network.address_scopes.assert_called_once_with(**{}) self.assertEqual(self.columns, columns) self.assertEqual(self.data, list(data)) + + +class TestShowAddressScope(TestAddressScope): + + # The address scope to show. + _address_scope = ( + network_fakes.FakeAddressScope.create_one_address_scope()) + columns = ( + 'id', + 'ip_version', + 'name', + 'project_id', + 'shared', + ) + data = ( + _address_scope.id, + _address_scope.ip_version, + _address_scope.name, + _address_scope.project_id, + _address_scope.shared, + ) + + def setUp(self): + super(TestShowAddressScope, self).setUp() + self.network.find_address_scope = mock.Mock( + return_value=self._address_scope) + + # Get the command object to test + self.cmd = address_scope.ShowAddressScope(self.app, self.namespace) + + def test_show_no_options(self): + arglist = [] + verifylist = [] + + # Missing required args should bail here + self.assertRaises(tests_utils.ParserException, self.check_parser, + self.cmd, arglist, verifylist) + + def test_show_all_options(self): + arglist = [ + self._address_scope.name, + ] + verifylist = [ + ('address_scope', self._address_scope.name), + ] + + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + self.network.find_address_scope.assert_called_once_with( + self._address_scope.name, ignore_missing=False) + self.assertEqual(self.columns, columns) + self.assertEqual(list(self.data), list(data)) |
