summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-05-11 07:11:43 +0000
committerGerrit Code Review <review@openstack.org>2016-05-11 07:11:43 +0000
commit94de0d3ebd18580f4faf9097322a47b2c7117aa1 (patch)
treeadd9b3cd610b3cf735c519bdb3173106250cf072 /openstackclient
parent0acb743611a3605fdb6b67218c0f2acbea0c215a (diff)
parent32da111c1757a884466814ac000fb7e662e6da42 (diff)
downloadpython-openstackclient-94de0d3ebd18580f4faf9097322a47b2c7117aa1.tar.gz
Merge "Implement "address scope show" command"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/address_scope.py24
-rw-r--r--openstackclient/tests/network/v2/test_address_scope.py53
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))