Merge "Avoid modifying default function arguments"

This commit is contained in:
Jenkins
2014-08-30 06:36:26 +00:00
committed by Gerrit Code Review
5 changed files with 29 additions and 25 deletions

View File

@@ -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:

View File

@@ -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")

View File

@@ -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:

View File

@@ -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:

View File

@@ -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}