summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/clientmanager.py2
-rw-r--r--openstackclient/compute/v2/hypervisor.py23
-rw-r--r--openstackclient/compute/v2/server.py52
-rw-r--r--openstackclient/identity/common.py24
-rw-r--r--openstackclient/identity/v2_0/catalog.py6
-rw-r--r--openstackclient/identity/v3/user.py14
-rw-r--r--openstackclient/network/v2/network.py64
-rw-r--r--openstackclient/tests/compute/v2/test_server.py56
-rw-r--r--openstackclient/tests/identity/v2_0/test_catalog.py58
-rw-r--r--openstackclient/tests/identity/v3/test_user.py62
-rw-r--r--openstackclient/tests/network/common.py27
-rw-r--r--openstackclient/tests/network/v2/test_network.py56
-rw-r--r--openstackclient/tests/test_shell.py2
-rw-r--r--openstackclient/tests/volume/v1/test_qos_specs.py2
-rw-r--r--openstackclient/tests/volume/v2/test_qos_specs.py2
15 files changed, 293 insertions, 157 deletions
diff --git a/openstackclient/common/clientmanager.py b/openstackclient/common/clientmanager.py
index 8612a614..742509e4 100644
--- a/openstackclient/common/clientmanager.py
+++ b/openstackclient/common/clientmanager.py
@@ -125,7 +125,7 @@ class ClientManager(object):
# password auth is requested.
if (self.auth_plugin_name.endswith('password') and
not self._cli_options.auth.get('password', None)):
- self._cli_options.os_password = self._pw_callback()
+ self._cli_options.auth['password'] = self._pw_callback()
(auth_plugin, self._auth_params) = auth.build_auth_params(
self.auth_plugin_name,
diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py
index 65035d04..f33beb08 100644
--- a/openstackclient/compute/v2/hypervisor.py
+++ b/openstackclient/compute/v2/hypervisor.py
@@ -77,6 +77,29 @@ class ShowHypervisor(show.ShowOne):
hypervisor = utils.find_resource(compute_client.hypervisors,
parsed_args.hypervisor)._info.copy()
+ aggregates = compute_client.aggregates.list()
+ hypervisor["aggregates"] = list()
+ if aggregates:
+ # Hypervisors in nova cells are prefixed by "<cell>@"
+ if "@" in hypervisor['service']['host']:
+ cell, service_host = hypervisor['service']['host'].split('@',
+ 1)
+ else:
+ cell = None
+ service_host = hypervisor['service']['host']
+
+ if cell:
+ # The host aggregates are also prefixed by "<cell>@"
+ member_of = [aggregate.name
+ for aggregate in aggregates
+ if cell in aggregate.name and
+ service_host in aggregate.hosts]
+ else:
+ member_of = [aggregate.name
+ for aggregate in aggregates
+ if service_host in aggregate.hosts]
+ hypervisor["aggregates"] = member_of
+
uptime = compute_client.hypervisors.uptime(hypervisor['id'])._info
# Extract data from uptime value
# format: 0 up 0, 0 users, load average: 0, 0, 0
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index 5007b072..4efef975 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -55,6 +55,39 @@ def _format_servers_list_networks(networks):
return '; '.join(output)
+def _get_ip_address(addresses, address_type, ip_address_family):
+ # Old style addresses
+ if address_type in addresses:
+ for addy in addresses[address_type]:
+ if int(addy['version']) in ip_address_family:
+ return addy['addr']
+
+ # New style addresses
+ new_address_type = address_type
+ if address_type == 'public':
+ new_address_type = 'floating'
+ if address_type == 'private':
+ new_address_type = 'fixed'
+ for network in addresses:
+ for addy in addresses[network]:
+ # Case where it is list of strings
+ if isinstance(addy, six.string_types):
+ if new_address_type == 'fixed':
+ return addresses[network][0]
+ else:
+ return addresses[network][-1]
+ # Case where it is a dict
+ if 'OS-EXT-IPS:type' not in addy:
+ continue
+ if addy['OS-EXT-IPS:type'] == new_address_type:
+ if int(addy['version']) in ip_address_family:
+ return addy['addr']
+ raise exceptions.CommandError(
+ "ERROR: No %s IP version %s address found" %
+ (address_type, ip_address_family)
+ )
+
+
def _prep_server_detail(compute_client, server):
"""Prepare the detailed server dict for printing
@@ -1283,6 +1316,7 @@ class SshServer(command.Command):
)
parser.add_argument(
'-l',
+ dest='login',
metavar='<login-name>',
help=argparse.SUPPRESS,
)
@@ -1381,13 +1415,6 @@ class SshServer(command.Command):
# Build the command
cmd = "ssh"
- # Look for address type
- if parsed_args.address_type:
- address_type = parsed_args.address_type
- if address_type not in server.addresses:
- raise SystemExit("ERROR: No %s IP address found" % address_type)
-
- # Set up desired address family
ip_address_family = [4, 6]
if parsed_args.ipv4:
ip_address_family = [4]
@@ -1396,14 +1423,6 @@ class SshServer(command.Command):
ip_address_family = [6]
cmd += " -6"
- # Grab the first matching IP address
- ip_address = None
- for addr in server.addresses[address_type]:
- if int(addr['version']) in ip_address_family:
- ip_address = addr['addr']
- if not ip_address:
- raise SystemExit("ERROR: No IP address found")
-
if parsed_args.port:
cmd += " -p %d" % parsed_args.port
if parsed_args.identity:
@@ -1418,6 +1437,9 @@ class SshServer(command.Command):
cmd += " -v"
cmd += " %s@%s"
+ ip_address = _get_ip_address(server.addresses,
+ parsed_args.address_type,
+ ip_address_family)
self.log.debug("ssh command: %s", (cmd % (login, ip_address)))
os.system(cmd % (login, ip_address))
diff --git a/openstackclient/identity/common.py b/openstackclient/identity/common.py
index 2638b797..d0edb0bd 100644
--- a/openstackclient/identity/common.py
+++ b/openstackclient/identity/common.py
@@ -57,20 +57,32 @@ def find_domain(identity_client, name_or_id):
def find_group(identity_client, name_or_id, domain_name_or_id=None):
domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
- return _find_identity_resource(identity_client.groups, name_or_id,
- groups.Group, domain_id=domain_id)
+ if not domain_id:
+ return _find_identity_resource(identity_client.groups, name_or_id,
+ groups.Group)
+ else:
+ return _find_identity_resource(identity_client.groups, name_or_id,
+ groups.Group, domain_id=domain_id)
def find_project(identity_client, name_or_id, domain_name_or_id=None):
domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
- return _find_identity_resource(identity_client.projects, name_or_id,
- projects.Project, domain_id=domain_id)
+ if not domain_id:
+ return _find_identity_resource(identity_client.projects, name_or_id,
+ projects.Project)
+ else:
+ return _find_identity_resource(identity_client.projects, name_or_id,
+ projects.Project, domain_id=domain_id)
def find_user(identity_client, name_or_id, domain_name_or_id=None):
domain_id = _get_domain_id_if_requested(identity_client, domain_name_or_id)
- return _find_identity_resource(identity_client.users, name_or_id,
- users.User, domain_id=domain_id)
+ if not domain_id:
+ return _find_identity_resource(identity_client.users, name_or_id,
+ users.User)
+ else:
+ return _find_identity_resource(identity_client.users, name_or_id,
+ users.User, domain_id=domain_id)
def _find_identity_resource(identity_client_manager, name_or_id,
diff --git a/openstackclient/identity/v2_0/catalog.py b/openstackclient/identity/v2_0/catalog.py
index 7d17fbf5..e166c855 100644
--- a/openstackclient/identity/v2_0/catalog.py
+++ b/openstackclient/identity/v2_0/catalog.py
@@ -30,8 +30,10 @@ def _format_endpoints(eps=None):
for index, ep in enumerate(eps):
region = eps[index].get('region', '<none>')
ret += region + '\n'
- for url in ['publicURL', 'internalURL', 'adminURL']:
- ret += " %s: %s\n" % (url, eps[index]['publicURL'])
+ for endpoint_type in ['publicURL', 'internalURL', 'adminURL']:
+ url = eps[index].get(endpoint_type)
+ if url:
+ ret += " %s: %s\n" % (endpoint_type, url)
return ret
diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py
index b72e0d15..459707d2 100644
--- a/openstackclient/identity/v3/user.py
+++ b/openstackclient/identity/v3/user.py
@@ -51,6 +51,7 @@ class CreateUser(show.ShowOne):
metavar='<project>',
help='Default project (name or ID)',
)
+ common.add_project_domain_option_to_parser(parser)
parser.add_argument(
'--password',
metavar='<password>',
@@ -96,10 +97,9 @@ class CreateUser(show.ShowOne):
project_id = None
if parsed_args.project:
- project_id = utils.find_resource(
- identity_client.projects,
- parsed_args.project,
- ).id
+ project_id = common.find_project(identity_client,
+ parsed_args.project,
+ parsed_args.project_domain).id
domain_id = None
if parsed_args.domain:
@@ -301,6 +301,7 @@ class SetUser(command.Command):
metavar='<project>',
help='Set default project (name or ID)',
)
+ common.add_project_domain_option_to_parser(parser)
parser.add_argument(
'--password',
metavar='<password>',
@@ -367,8 +368,9 @@ class SetUser(command.Command):
if parsed_args.description:
kwargs['description'] = parsed_args.description
if parsed_args.project:
- project_id = utils.find_resource(
- identity_client.projects, parsed_args.project).id
+ project_id = common.find_project(identity_client,
+ parsed_args.project,
+ parsed_args.project_domain).id
kwargs['default_project'] = project_id
kwargs['enabled'] = user.enabled
if parsed_args.enable:
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py
index 1fa05462..336b3086 100644
--- a/openstackclient/network/v2/network.py
+++ b/openstackclient/network/v2/network.py
@@ -157,10 +157,6 @@ class ListNetwork(lister.Lister):
help='List external networks',
)
parser.add_argument(
- '--dhcp',
- metavar='<dhcp-id>',
- help='DHCP agent ID')
- parser.add_argument(
'--long',
action='store_true',
default=False,
@@ -172,40 +168,34 @@ class ListNetwork(lister.Lister):
self.log.debug('take_action(%s)' % parsed_args)
client = self.app.client_manager.network
- if parsed_args.dhcp:
- data = client.api.dhcp_agent_list(dhcp_id=parsed_args.dhcp)
-
- columns = ('ID',)
- column_headers = columns
+ data = client.api.network_list(external=parsed_args.external)
+
+ if parsed_args.long:
+ columns = (
+ 'ID',
+ 'Name',
+ 'Status',
+ 'project_id',
+ 'state',
+ 'Shared',
+ 'Subnets',
+ 'provider:network_type',
+ 'router_type',
+ )
+ column_headers = (
+ 'ID',
+ 'Name',
+ 'Status',
+ 'Project',
+ 'State',
+ 'Shared',
+ 'Subnets',
+ 'Network Type',
+ 'Router Type',
+ )
else:
- data = client.api.network_list(external=parsed_args.external)
-
- if parsed_args.long:
- columns = (
- 'ID',
- 'Name',
- 'Status',
- 'project_id',
- 'state',
- 'Shared',
- 'Subnets',
- 'provider:network_type',
- 'router_type',
- )
- column_headers = (
- 'ID',
- 'Name',
- 'Status',
- 'Project',
- 'State',
- 'Shared',
- 'Subnets',
- 'Network Type',
- 'Router Type',
- )
- else:
- columns = ('ID', 'Name', 'Subnets')
- column_headers = columns
+ columns = ('ID', 'Name', 'Subnets')
+ column_headers = columns
for d in data:
d = _prep_network_detail(d)
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index a8a1936d..4df18f05 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -15,7 +15,9 @@
import copy
import mock
+import testtools
+from openstackclient.common import exceptions
from openstackclient.common import utils as common_utils
from openstackclient.compute.v2 import server
from openstackclient.tests.compute.v2 import fakes as compute_fakes
@@ -250,7 +252,7 @@ class TestServerCreate(TestServer):
mock_open.assert_called_with('userdata.sh')
# Ensure the userdata file is closed
- mock_file.close.assert_called()
+ mock_file.close.assert_called_with()
# Set expected values
kwargs = dict(
@@ -580,3 +582,55 @@ class TestServerResize(TestServer):
self.servers_mock.revert_resize.assert_called_with(
self.servers_get_return_value,
)
+
+
+class TestServerGeneral(testtools.TestCase):
+ OLD = {
+ 'private': [
+ {
+ 'addr': '192.168.0.3',
+ 'version': 4,
+ },
+ ]
+ }
+ NEW = {
+ 'foo': [
+ {
+ 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:93:b3:01',
+ 'version': 4,
+ 'addr': '10.10.1.2',
+ 'OS-EXT-IPS:type': 'fixed',
+ },
+ {
+ 'OS-EXT-IPS-MAC:mac_addr': 'fa:16:3e:93:b3:02',
+ 'version': 6,
+ 'addr': '0:0:0:0:0:ffff:a0a:103',
+ 'OS-EXT-IPS:type': 'floating',
+ },
+ ]
+ }
+ ODD = {'jenkins': ['10.3.3.18', '124.12.125.4']}
+
+ def test_get_ip_address(self):
+ self.assertEqual("192.168.0.3",
+ server._get_ip_address(self.OLD, 'private', [4, 6]))
+ self.assertEqual("10.10.1.2",
+ server._get_ip_address(self.NEW, 'fixed', [4, 6]))
+ self.assertEqual("10.10.1.2",
+ server._get_ip_address(self.NEW, 'private', [4, 6]))
+ self.assertEqual("0:0:0:0:0:ffff:a0a:103",
+ server._get_ip_address(self.NEW, 'public', [6]))
+ self.assertEqual("0:0:0:0:0:ffff:a0a:103",
+ server._get_ip_address(self.NEW, 'floating', [6]))
+ self.assertEqual("124.12.125.4",
+ server._get_ip_address(self.ODD, 'public', [4, 6]))
+ self.assertEqual("10.3.3.18",
+ server._get_ip_address(self.ODD, 'private', [4, 6]))
+ self.assertRaises(exceptions.CommandError,
+ server._get_ip_address, self.NEW, 'public', [4])
+ self.assertRaises(exceptions.CommandError,
+ server._get_ip_address, self.NEW, 'admin', [4])
+ self.assertRaises(exceptions.CommandError,
+ server._get_ip_address, self.OLD, 'public', [4, 6])
+ self.assertRaises(exceptions.CommandError,
+ server._get_ip_address, self.OLD, 'private', [6])
diff --git a/openstackclient/tests/identity/v2_0/test_catalog.py b/openstackclient/tests/identity/v2_0/test_catalog.py
index 50445954..7f1835d6 100644
--- a/openstackclient/tests/identity/v2_0/test_catalog.py
+++ b/openstackclient/tests/identity/v2_0/test_catalog.py
@@ -27,11 +27,13 @@ class TestCatalog(utils.TestCommand):
{
'region': 'one',
'publicURL': 'https://public.one.example.com',
+ 'internalURL': 'https://internal.one.example.com',
'adminURL': 'https://admin.one.example.com',
},
{
'region': 'two',
'publicURL': 'https://public.two.example.com',
+ 'internalURL': 'https://internal.two.example.com',
'adminURL': 'https://admin.two.example.com',
},
],
@@ -74,11 +76,51 @@ class TestCatalogList(TestCatalog):
'supernova',
'compute',
'one\n publicURL: https://public.one.example.com\n '
- 'internalURL: https://public.one.example.com\n '
- 'adminURL: https://public.one.example.com\n'
+ 'internalURL: https://internal.one.example.com\n '
+ 'adminURL: https://admin.one.example.com\n'
'two\n publicURL: https://public.two.example.com\n '
- 'internalURL: https://public.two.example.com\n '
- 'adminURL: https://public.two.example.com\n',
+ 'internalURL: https://internal.two.example.com\n '
+ 'adminURL: https://admin.two.example.com\n',
+ ), )
+ self.assertEqual(datalist, tuple(data))
+
+ def test_catalog_list_with_endpoint_url(self):
+ fake_service = {
+ 'id': 'qwertyuiop',
+ 'type': 'compute',
+ 'name': 'supernova',
+ 'endpoints': [
+ {
+ 'region': 'one',
+ 'publicURL': 'https://public.one.example.com',
+ },
+ {
+ 'region': 'two',
+ 'publicURL': 'https://public.two.example.com',
+ 'internalURL': 'https://internal.two.example.com',
+ },
+ ],
+ }
+ self.sc_mock.service_catalog.get_data.return_value = [
+ fake_service,
+ ]
+
+ arglist = []
+ verifylist = []
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ columns, data = self.cmd.take_action(parsed_args)
+ self.sc_mock.service_catalog.get_data.assert_called_with()
+
+ collist = ('Name', 'Type', 'Endpoints')
+ self.assertEqual(collist, columns)
+ datalist = ((
+ 'supernova',
+ 'compute',
+ 'one\n publicURL: https://public.one.example.com\n'
+ 'two\n publicURL: https://public.two.example.com\n '
+ 'internalURL: https://internal.two.example.com\n'
), )
self.assertEqual(datalist, tuple(data))
@@ -108,11 +150,11 @@ class TestCatalogShow(TestCatalog):
self.assertEqual(collist, columns)
datalist = (
'one\n publicURL: https://public.one.example.com\n '
- 'internalURL: https://public.one.example.com\n '
- 'adminURL: https://public.one.example.com\n'
+ 'internalURL: https://internal.one.example.com\n '
+ 'adminURL: https://admin.one.example.com\n'
'two\n publicURL: https://public.two.example.com\n '
- 'internalURL: https://public.two.example.com\n '
- 'adminURL: https://public.two.example.com\n',
+ 'internalURL: https://internal.two.example.com\n '
+ 'adminURL: https://admin.two.example.com\n',
'qwertyuiop',
'supernova',
'compute',
diff --git a/openstackclient/tests/identity/v3/test_user.py b/openstackclient/tests/identity/v3/test_user.py
index 18fe9016..bdde25a2 100644
--- a/openstackclient/tests/identity/v3/test_user.py
+++ b/openstackclient/tests/identity/v3/test_user.py
@@ -320,6 +320,68 @@ class TestUserCreate(TestUser):
)
self.assertEqual(datalist, data)
+ def test_user_create_project_domain(self):
+ # Return the new project
+ self.projects_mock.get.return_value = fakes.FakeResource(
+ None,
+ copy.deepcopy(identity_fakes.PROJECT_2),
+ loaded=True,
+ )
+ # Set up to return an updated user
+ USER_2 = copy.deepcopy(identity_fakes.USER)
+ USER_2['default_project_id'] = identity_fakes.PROJECT_2['id']
+ self.users_mock.create.return_value = fakes.FakeResource(
+ None,
+ USER_2,
+ loaded=True,
+ )
+
+ arglist = [
+ '--project', identity_fakes.PROJECT_2['name'],
+ '--project-domain', identity_fakes.PROJECT_2['domain_id'],
+ identity_fakes.user_name,
+ ]
+ verifylist = [
+ ('project', identity_fakes.PROJECT_2['name']),
+ ('project_domain', identity_fakes.PROJECT_2['domain_id']),
+ ('enable', False),
+ ('disable', False),
+ ('name', identity_fakes.user_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'name': identity_fakes.user_name,
+ 'default_project': identity_fakes.PROJECT_2['id'],
+ 'description': None,
+ 'domain': None,
+ 'email': None,
+ 'enabled': True,
+ 'password': None,
+ }
+ # UserManager.create(name=, domain=, project=, password=, email=,
+ # description=, enabled=, default_project=)
+ self.users_mock.create.assert_called_with(
+ **kwargs
+ )
+
+ collist = ('default_project_id', 'domain_id', 'email',
+ 'enabled', 'id', 'name')
+ self.assertEqual(collist, columns)
+ datalist = (
+ identity_fakes.PROJECT_2['id'],
+ identity_fakes.domain_id,
+ identity_fakes.user_email,
+ True,
+ identity_fakes.user_id,
+ identity_fakes.user_name,
+ )
+ self.assertEqual(datalist, data)
+
def test_user_create_domain(self):
arglist = [
'--domain', identity_fakes.domain_name,
diff --git a/openstackclient/tests/network/common.py b/openstackclient/tests/network/common.py
index 7162f97b..31fde257 100644
--- a/openstackclient/tests/network/common.py
+++ b/openstackclient/tests/network/common.py
@@ -33,30 +33,3 @@ class TestNetworkBase(utils.TestCommand):
service_type="network",
)
self.api = self.app.client_manager.network.api
-
- given_show_options = [
- '-f',
- 'shell',
- '-c',
- 'id',
- '--prefix',
- 'TST',
- ]
- then_show_options = [
- ('formatter', 'shell'),
- ('columns', ['id']),
- ('prefix', 'TST'),
- ]
- given_list_options = [
- '-f',
- 'csv',
- '-c',
- 'id',
- '--quote',
- 'all',
- ]
- then_list_options = [
- ('formatter', 'csv'),
- ('columns', ['id']),
- ('quote_mode', 'all'),
- ]
diff --git a/openstackclient/tests/network/v2/test_network.py b/openstackclient/tests/network/v2/test_network.py
index 36133a3b..55062594 100644
--- a/openstackclient/tests/network/v2/test_network.py
+++ b/openstackclient/tests/network/v2/test_network.py
@@ -92,14 +92,14 @@ class TestCreateNetwork(common.TestNetworkBase):
"--project", identity_fakes_v3.project_name,
"--project-domain", identity_fakes_v3.domain_name,
FAKE_NAME,
- ] + self.given_show_options
+ ]
verifylist = [
('admin_state', False),
('shared', True),
('project', identity_fakes_v3.project_name),
('project_domain', identity_fakes_v3.domain_name),
('name', FAKE_NAME),
- ] + self.then_show_options
+ ]
mocker = mock.Mock(return_value=copy.deepcopy(RESPONSE))
self.app.client_manager.network.create_network = mocker
identity_client = identity_fakes_v3.FakeIdentityv3Client(
@@ -278,7 +278,6 @@ class TestListNetwork(common.TestNetworkBase):
arglist = []
verifylist = [
('external', False),
- ('dhcp', None),
('long', False),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -306,7 +305,6 @@ class TestListNetwork(common.TestNetworkBase):
]
verifylist = [
('external', True),
- ('dhcp', None),
('long', False),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -334,7 +332,6 @@ class TestListNetwork(common.TestNetworkBase):
]
verifylist = [
('long', True),
- ('dhcp', None),
('external', False),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -377,51 +374,6 @@ class TestListNetwork(common.TestNetworkBase):
self.assertEqual(list(data), datalist)
-@mock.patch(
- 'openstackclient.api.network_v2.APIv2.dhcp_agent_list'
-)
-class TestListDhcpAgent(common.TestNetworkBase):
-
- def setUp(self):
- super(TestListDhcpAgent, self).setUp()
-
- # Get the command object to test
- self.cmd = network.ListNetwork(self.app, self.namespace)
-
- self.DHCP_LIST = [
- {'id': '1'},
- {'id': '2'},
- ]
-
- def test_list_dhcp(self, n_mock):
- n_mock.return_value = self.DHCP_LIST
-
- arglist = [
- '--dhcp', 'dhcpid',
- ]
- verifylist = [
- ('external', False),
- ('dhcp', 'dhcpid'),
- ('long', False),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- # DisplayCommandBase.take_action() returns two tuples
- columns, data = self.cmd.take_action(parsed_args)
-
- # Set expected values
- n_mock.assert_called_with(
- dhcp_id='dhcpid',
- )
-
- self.assertEqual(('ID',), columns)
- datalist = [
- ('1',),
- ('2',),
- ]
- self.assertEqual(datalist, list(data))
-
-
class TestSetNetwork(common.TestNetworkBase):
def test_set_this(self):
arglist = [
@@ -519,8 +471,8 @@ class TestShowNetwork(common.TestNetworkBase):
self.assertEqual(FILTERED, result)
def test_show_all_options(self, n_mock):
- arglist = [FAKE_NAME] + self.given_show_options
- verifylist = [('identifier', FAKE_NAME)] + self.then_show_options
+ arglist = [FAKE_NAME]
+ verifylist = [('identifier', FAKE_NAME)]
n_mock.return_value = copy.deepcopy(RECORD)
self.cmd = network.ShowNetwork(self.app, self.namespace)
diff --git a/openstackclient/tests/test_shell.py b/openstackclient/tests/test_shell.py
index 4e1b0ed8..e2f0580b 100644
--- a/openstackclient/tests/test_shell.py
+++ b/openstackclient/tests/test_shell.py
@@ -16,6 +16,7 @@
import copy
import mock
import os
+import testtools
from openstackclient import shell
from openstackclient.tests import utils
@@ -283,6 +284,7 @@ class TestShellHelp(TestShell):
super(TestShellHelp, self).tearDown()
os.environ = self.orig_env
+ @testtools.skip("skip until bug 1444983 is resolved")
def test_help_options(self):
flag = "-h list server"
kwargs = {
diff --git a/openstackclient/tests/volume/v1/test_qos_specs.py b/openstackclient/tests/volume/v1/test_qos_specs.py
index 0a5d14e6..226fe673 100644
--- a/openstackclient/tests/volume/v1/test_qos_specs.py
+++ b/openstackclient/tests/volume/v1/test_qos_specs.py
@@ -312,7 +312,7 @@ class TestQosList(TestQos):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- self.qos_mock.list.assert_called()
+ self.qos_mock.list.assert_called_with()
collist = (
'ID',
diff --git a/openstackclient/tests/volume/v2/test_qos_specs.py b/openstackclient/tests/volume/v2/test_qos_specs.py
index 92b3f179..6a550988 100644
--- a/openstackclient/tests/volume/v2/test_qos_specs.py
+++ b/openstackclient/tests/volume/v2/test_qos_specs.py
@@ -312,7 +312,7 @@ class TestQosList(TestQos):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
columns, data = self.cmd.take_action(parsed_args)
- self.qos_mock.list.assert_called()
+ self.qos_mock.list.assert_called_with()
collist = (
'ID',