Merge "Avoid modifying default function arguments"
This commit is contained in:
@@ -106,7 +106,7 @@ def get_client_class(api_name, version, version_map):
|
||||
return import_class(client_path)
|
||||
|
||||
|
||||
def get_item_properties(item, fields, mixed_case_fields=[], formatters={}):
|
||||
def get_item_properties(item, fields, mixed_case_fields=(), formatters=None):
|
||||
"""Return a tuple containing the item properties.
|
||||
|
||||
:param item: a single item resource (e.g. Server, Tenant, etc)
|
||||
@@ -115,6 +115,9 @@ def get_item_properties(item, fields, mixed_case_fields=[], formatters={}):
|
||||
:param formatters: dictionary mapping field names to callables
|
||||
to format the values
|
||||
"""
|
||||
if formatters is None:
|
||||
formatters = {}
|
||||
|
||||
row = []
|
||||
|
||||
for field in fields:
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#
|
||||
|
||||
import contextlib
|
||||
import itertools
|
||||
import sys
|
||||
import urllib
|
||||
|
||||
@@ -181,11 +182,12 @@ class CLITestV20Base(base.BaseTestCase):
|
||||
'xmlns': constants.XML_NS_V20,
|
||||
constants.EXT_NS: {'prefix': 'http://xxxx.yy.com'}}
|
||||
|
||||
def setUp(self, plurals={}):
|
||||
def setUp(self, plurals=None):
|
||||
"""Prepare the test environment."""
|
||||
super(CLITestV20Base, self).setUp()
|
||||
client.Client.EXTED_PLURALS.update(constants.PLURALS)
|
||||
client.Client.EXTED_PLURALS.update(plurals)
|
||||
if plurals is not None:
|
||||
client.Client.EXTED_PLURALS.update(plurals)
|
||||
self.metadata = {'plurals': client.Client.EXTED_PLURALS,
|
||||
'xmlns': constants.XML_NS_V20,
|
||||
constants.EXT_NS: {'prefix':
|
||||
@@ -271,7 +273,7 @@ class CLITestV20Base(base.BaseTestCase):
|
||||
self.assertIn(name, _str)
|
||||
|
||||
def _test_list_columns(self, cmd, resources,
|
||||
resources_out, args=['-f', 'json'],
|
||||
resources_out, args=('-f', 'json'),
|
||||
cmd_resources=None, parent_id=None):
|
||||
self.mox.StubOutWithMock(cmd, "get_client")
|
||||
self.mox.StubOutWithMock(self.client.httpclient, "request")
|
||||
@@ -290,16 +292,16 @@ class CLITestV20Base(base.BaseTestCase):
|
||||
body=None,
|
||||
headers=mox.ContainsKeyValue(
|
||||
'X-Auth-Token', TOKEN)).AndReturn((MyResp(200), resstr))
|
||||
args.extend(['--request-format', self.format])
|
||||
args = tuple(args) + ('--request-format', self.format)
|
||||
self.mox.ReplayAll()
|
||||
cmd_parser = cmd.get_parser("list_" + cmd_resources)
|
||||
shell.run_command(cmd, cmd_parser, args)
|
||||
self.mox.VerifyAll()
|
||||
self.mox.UnsetStubs()
|
||||
|
||||
def _test_list_resources(self, resources, cmd, detail=False, tags=[],
|
||||
fields_1=[], fields_2=[], page_size=None,
|
||||
sort_key=[], sort_dir=[], response_contents=None,
|
||||
def _test_list_resources(self, resources, cmd, detail=False, tags=(),
|
||||
fields_1=(), fields_2=(), page_size=None,
|
||||
sort_key=(), sort_dir=(), response_contents=None,
|
||||
base_args=None, path=None, cmd_resources=None,
|
||||
parent_id=None):
|
||||
self.mox.StubOutWithMock(cmd, "get_client")
|
||||
@@ -345,8 +347,7 @@ class CLITestV20Base(base.BaseTestCase):
|
||||
args.append(field)
|
||||
if detail:
|
||||
query = query and query + '&verbose=True' or 'verbose=True'
|
||||
fields_1.extend(fields_2)
|
||||
for field in fields_1:
|
||||
for field in itertools.chain(fields_1, fields_2):
|
||||
if query:
|
||||
query += "&fields=" + field
|
||||
else:
|
||||
@@ -368,7 +369,7 @@ class CLITestV20Base(base.BaseTestCase):
|
||||
if sort_dir:
|
||||
len_diff = len(sort_key) - len(sort_dir)
|
||||
if len_diff > 0:
|
||||
sort_dir += ['asc'] * len_diff
|
||||
sort_dir = tuple(sort_dir) + ('asc',) * len_diff
|
||||
elif len_diff < 0:
|
||||
sort_dir = sort_dir[:len(sort_key)]
|
||||
for dir in sort_dir:
|
||||
@@ -475,7 +476,7 @@ class CLITestV20Base(base.BaseTestCase):
|
||||
_str = self.fake_stdout.make_string()
|
||||
self.assertIn(myid, _str)
|
||||
|
||||
def _test_show_resource(self, resource, cmd, myid, args, fields=[],
|
||||
def _test_show_resource(self, resource, cmd, myid, args, fields=(),
|
||||
cmd_resource=None, parent_id=None):
|
||||
self.mox.StubOutWithMock(cmd, "get_client")
|
||||
self.mox.StubOutWithMock(self.client.httpclient, "request")
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import itertools
|
||||
import sys
|
||||
|
||||
from mox3 import mox
|
||||
@@ -134,9 +135,9 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base):
|
||||
_str = self.fake_stdout.make_string()
|
||||
self.assertEqual('\n', _str)
|
||||
|
||||
def _test_list_networks(self, cmd, detail=False, tags=[],
|
||||
fields_1=[], fields_2=[], page_size=None,
|
||||
sort_key=[], sort_dir=[]):
|
||||
def _test_list_networks(self, cmd, detail=False, tags=(),
|
||||
fields_1=(), fields_2=(), page_size=None,
|
||||
sort_key=(), sort_dir=()):
|
||||
resources = "networks"
|
||||
self.mox.StubOutWithMock(network.ListNetwork, "extend_list")
|
||||
network.ListNetwork.extend_list(mox.IsA(list), mox.IgnoreArg())
|
||||
@@ -266,7 +267,7 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base):
|
||||
fields_1=['a', 'b'], fields_2=['c', 'd'])
|
||||
|
||||
def _test_list_nets_columns(self, cmd, returned_body,
|
||||
args=['-f', 'json']):
|
||||
args=('-f', 'json')):
|
||||
resources = 'networks'
|
||||
self.mox.StubOutWithMock(network.ListNetwork, "extend_list")
|
||||
network.ListNetwork.extend_list(mox.IsA(list), mox.IgnoreArg())
|
||||
@@ -333,8 +334,8 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base):
|
||||
self.assertEqual('\n', _str)
|
||||
|
||||
def _test_list_external_nets(self, resources, cmd,
|
||||
detail=False, tags=[],
|
||||
fields_1=[], fields_2=[]):
|
||||
detail=False, tags=(),
|
||||
fields_1=(), fields_2=()):
|
||||
self.mox.StubOutWithMock(cmd, "get_client")
|
||||
self.mox.StubOutWithMock(self.client.httpclient, "request")
|
||||
self.mox.StubOutWithMock(network.ListNetwork, "extend_list")
|
||||
@@ -363,8 +364,7 @@ class CLITestV20NetworkJSON(test_cli20.CLITestV20Base):
|
||||
args.append("--fields")
|
||||
for field in fields_2:
|
||||
args.append(field)
|
||||
fields_1.extend(fields_2)
|
||||
for field in fields_1:
|
||||
for field in itertools.chain(fields_1, fields_2):
|
||||
if query:
|
||||
query += "&fields=" + field
|
||||
else:
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import itertools
|
||||
import sys
|
||||
|
||||
from mox3 import mox
|
||||
@@ -227,8 +228,8 @@ class CLITestV20PortJSON(test_cli20.CLITestV20Base):
|
||||
fields_1=['a', 'b'], fields_2=['c', 'd'])
|
||||
|
||||
def _test_list_router_port(self, resources, cmd,
|
||||
myid, detail=False, tags=[],
|
||||
fields_1=[], fields_2=[]):
|
||||
myid, detail=False, tags=(),
|
||||
fields_1=(), fields_2=()):
|
||||
self.mox.StubOutWithMock(cmd, "get_client")
|
||||
self.mox.StubOutWithMock(self.client.httpclient, "request")
|
||||
cmd.get_client().MultipleTimes().AndReturn(self.client)
|
||||
@@ -257,8 +258,7 @@ class CLITestV20PortJSON(test_cli20.CLITestV20Base):
|
||||
args.append("--fields")
|
||||
for field in fields_2:
|
||||
args.append(field)
|
||||
fields_1.extend(fields_2)
|
||||
for field in fields_1:
|
||||
for field in itertools.chain(fields_1, fields_2):
|
||||
if query:
|
||||
query += "&fields=" + field
|
||||
else:
|
||||
|
||||
@@ -324,7 +324,7 @@ class CLITestV20SecurityGroupsJSON(test_cli20.CLITestV20Base):
|
||||
args, ['id'])
|
||||
|
||||
def _test_list_security_group_rules_extend(self, data=None, expected=None,
|
||||
args=[], conv=True,
|
||||
args=(), conv=True,
|
||||
query_field=False):
|
||||
def setup_list_stub(resources, data, query):
|
||||
reses = {resources: data}
|
||||
|
||||
Reference in New Issue
Block a user