diff options
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/common/clientmanager.py | 2 | ||||
| -rw-r--r-- | openstackclient/compute/v2/hypervisor.py | 23 | ||||
| -rw-r--r-- | openstackclient/compute/v2/server.py | 52 | ||||
| -rw-r--r-- | openstackclient/identity/common.py | 24 | ||||
| -rw-r--r-- | openstackclient/identity/v2_0/catalog.py | 6 | ||||
| -rw-r--r-- | openstackclient/identity/v3/user.py | 14 | ||||
| -rw-r--r-- | openstackclient/network/v2/network.py | 64 | ||||
| -rw-r--r-- | openstackclient/tests/compute/v2/test_server.py | 56 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v2_0/test_catalog.py | 58 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/test_user.py | 62 | ||||
| -rw-r--r-- | openstackclient/tests/network/common.py | 27 | ||||
| -rw-r--r-- | openstackclient/tests/network/v2/test_network.py | 56 | ||||
| -rw-r--r-- | openstackclient/tests/test_shell.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/volume/v1/test_qos_specs.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/volume/v2/test_qos_specs.py | 2 |
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', |
