Skip to content

Commit 76d5c1a

Browse files
Jenkinsopenstack-gerrit
Jenkins
authored andcommitted
Merge "Avoid modifying default function arguments"
2 parents 8a03a9c + 16e04a5 commit 76d5c1a

File tree

5 files changed

+29
-25
lines changed

5 files changed

+29
-25
lines changed

neutronclient/common/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def get_client_class(api_name, version, version_map):
106106
return import_class(client_path)
107107

108108

109-
def get_item_properties(item, fields, mixed_case_fields=[], formatters={}):
109+
def get_item_properties(item, fields, mixed_case_fields=(), formatters=None):
110110
"""Return a tuple containing the item properties.
111111
112112
: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={}):
115115
:param formatters: dictionary mapping field names to callables
116116
to format the values
117117
"""
118+
if formatters is None:
119+
formatters = {}
120+
118121
row = []
119122

120123
for field in fields:

neutronclient/tests/unit/test_cli20.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#
1616

1717
import contextlib
18+
import itertools
1819
import sys
1920
import urllib
2021

@@ -181,11 +182,12 @@ def _get_attr_metadata(self):
181182
'xmlns': constants.XML_NS_V20,
182183
constants.EXT_NS: {'prefix': 'http://xxxx.yy.com'}}
183184

184-
def setUp(self, plurals={}):
185+
def setUp(self, plurals=None):
185186
"""Prepare the test environment."""
186187
super(CLITestV20Base, self).setUp()
187188
client.Client.EXTED_PLURALS.update(constants.PLURALS)
188-
client.Client.EXTED_PLURALS.update(plurals)
189+
if plurals is not None:
190+
client.Client.EXTED_PLURALS.update(plurals)
189191
self.metadata = {'plurals': client.Client.EXTED_PLURALS,
190192
'xmlns': constants.XML_NS_V20,
191193
constants.EXT_NS: {'prefix':
@@ -271,7 +273,7 @@ def _test_create_resource(self, resource, cmd, name, myid, args,
271273
self.assertIn(name, _str)
272274

273275
def _test_list_columns(self, cmd, resources,
274-
resources_out, args=['-f', 'json'],
276+
resources_out, args=('-f', 'json'),
275277
cmd_resources=None, parent_id=None):
276278
self.mox.StubOutWithMock(cmd, "get_client")
277279
self.mox.StubOutWithMock(self.client.httpclient, "request")
@@ -290,16 +292,16 @@ def _test_list_columns(self, cmd, resources,
290292
body=None,
291293
headers=mox.ContainsKeyValue(
292294
'X-Auth-Token', TOKEN)).AndReturn((MyResp(200), resstr))
293-
args.extend(['--request-format', self.format])
295+
args = tuple(args) + ('--request-format', self.format)
294296
self.mox.ReplayAll()
295297
cmd_parser = cmd.get_parser("list_" + cmd_resources)
296298
shell.run_command(cmd, cmd_parser, args)
297299
self.mox.VerifyAll()
298300
self.mox.UnsetStubs()
299301

300-
def _test_list_resources(self, resources, cmd, detail=False, tags=[],
301-
fields_1=[], fields_2=[], page_size=None,
302-
sort_key=[], sort_dir=[], response_contents=None,
302+
def _test_list_resources(self, resources, cmd, detail=False, tags=(),
303+
fields_1=(), fields_2=(), page_size=None,
304+
sort_key=(), sort_dir=(), response_contents=None,
303305
base_args=None, path=None, cmd_resources=None,
304306
parent_id=None):
305307
self.mox.StubOutWithMock(cmd, "get_client")
@@ -345,8 +347,7 @@ def _test_list_resources(self, resources, cmd, detail=False, tags=[],
345347
args.append(field)
346348
if detail:
347349
query = query and query + '&verbose=True' or 'verbose=True'
348-
fields_1.extend(fields_2)
349-
for field in fields_1:
350+
for field in itertools.chain(fields_1, fields_2):
350351
if query:
351352
query += "&fields=" + field
352353
else:
@@ -368,7 +369,7 @@ def _test_list_resources(self, resources, cmd, detail=False, tags=[],
368369
if sort_dir:
369370
len_diff = len(sort_key) - len(sort_dir)
370371
if len_diff > 0:
371-
sort_dir += ['asc'] * len_diff
372+
sort_dir = tuple(sort_dir) + ('asc',) * len_diff
372373
elif len_diff < 0:
373374
sort_dir = sort_dir[:len(sort_key)]
374375
for dir in sort_dir:
@@ -475,7 +476,7 @@ def _test_update_resource(self, resource, cmd, myid, args, extrafields,
475476
_str = self.fake_stdout.make_string()
476477
self.assertIn(myid, _str)
477478

478-
def _test_show_resource(self, resource, cmd, myid, args, fields=[],
479+
def _test_show_resource(self, resource, cmd, myid, args, fields=(),
479480
cmd_resource=None, parent_id=None):
480481
self.mox.StubOutWithMock(cmd, "get_client")
481482
self.mox.StubOutWithMock(self.client.httpclient, "request")

neutronclient/tests/unit/test_cli20_network.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# under the License.
1414
#
1515

16+
import itertools
1617
import sys
1718

1819
from mox3 import mox
@@ -134,9 +135,9 @@ def test_list_nets_empty_with_column(self):
134135
_str = self.fake_stdout.make_string()
135136
self.assertEqual('\n', _str)
136137

137-
def _test_list_networks(self, cmd, detail=False, tags=[],
138-
fields_1=[], fields_2=[], page_size=None,
139-
sort_key=[], sort_dir=[]):
138+
def _test_list_networks(self, cmd, detail=False, tags=(),
139+
fields_1=(), fields_2=(), page_size=None,
140+
sort_key=(), sort_dir=()):
140141
resources = "networks"
141142
self.mox.StubOutWithMock(network.ListNetwork, "extend_list")
142143
network.ListNetwork.extend_list(mox.IsA(list), mox.IgnoreArg())
@@ -266,7 +267,7 @@ def test_list_nets_fields(self):
266267
fields_1=['a', 'b'], fields_2=['c', 'd'])
267268

268269
def _test_list_nets_columns(self, cmd, returned_body,
269-
args=['-f', 'json']):
270+
args=('-f', 'json')):
270271
resources = 'networks'
271272
self.mox.StubOutWithMock(network.ListNetwork, "extend_list")
272273
network.ListNetwork.extend_list(mox.IsA(list), mox.IgnoreArg())
@@ -333,8 +334,8 @@ def test_list_external_nets_empty_with_column(self):
333334
self.assertEqual('\n', _str)
334335

335336
def _test_list_external_nets(self, resources, cmd,
336-
detail=False, tags=[],
337-
fields_1=[], fields_2=[]):
337+
detail=False, tags=(),
338+
fields_1=(), fields_2=()):
338339
self.mox.StubOutWithMock(cmd, "get_client")
339340
self.mox.StubOutWithMock(self.client.httpclient, "request")
340341
self.mox.StubOutWithMock(network.ListNetwork, "extend_list")
@@ -363,8 +364,7 @@ def _test_list_external_nets(self, resources, cmd,
363364
args.append("--fields")
364365
for field in fields_2:
365366
args.append(field)
366-
fields_1.extend(fields_2)
367-
for field in fields_1:
367+
for field in itertools.chain(fields_1, fields_2):
368368
if query:
369369
query += "&fields=" + field
370370
else:

neutronclient/tests/unit/test_cli20_port.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
# under the License.
1515
#
1616

17+
import itertools
1718
import sys
1819

1920
from mox3 import mox
@@ -227,8 +228,8 @@ def test_list_ports_fields(self):
227228
fields_1=['a', 'b'], fields_2=['c', 'd'])
228229

229230
def _test_list_router_port(self, resources, cmd,
230-
myid, detail=False, tags=[],
231-
fields_1=[], fields_2=[]):
231+
myid, detail=False, tags=(),
232+
fields_1=(), fields_2=()):
232233
self.mox.StubOutWithMock(cmd, "get_client")
233234
self.mox.StubOutWithMock(self.client.httpclient, "request")
234235
cmd.get_client().MultipleTimes().AndReturn(self.client)
@@ -257,8 +258,7 @@ def _test_list_router_port(self, resources, cmd,
257258
args.append("--fields")
258259
for field in fields_2:
259260
args.append(field)
260-
fields_1.extend(fields_2)
261-
for field in fields_1:
261+
for field in itertools.chain(fields_1, fields_2):
262262
if query:
263263
query += "&fields=" + field
264264
else:

neutronclient/tests/unit/test_cli20_securitygroup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ def test_show_security_group_rule(self):
324324
args, ['id'])
325325

326326
def _test_list_security_group_rules_extend(self, data=None, expected=None,
327-
args=[], conv=True,
327+
args=(), conv=True,
328328
query_field=False):
329329
def setup_list_stub(resources, data, query):
330330
reses = {resources: data}

0 commit comments

Comments
 (0)