From 31a7ae54f67c2b109d60b265dea85b35e31631d4 Mon Sep 17 00:00:00 2001 From: liuqing Date: Tue, 1 Jul 2014 16:16:49 +0800 Subject: [PATCH] Use immutable arg rather mutable arg Passing mutable objects as default args is a known Python pitfall. We'd better avoid this. This commit changes mutable default args with None. Change-Id: I7817c92069d32d1926e185ca0d0ab14e738b8b3d --- cinderclient/tests/fakes.py | 5 ++++- cinderclient/tests/v1/test_shell.py | 4 ++-- cinderclient/utils.py | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cinderclient/tests/fakes.py b/cinderclient/tests/fakes.py index 5a3937c58..006baab81 100644 --- a/cinderclient/tests/fakes.py +++ b/cinderclient/tests/fakes.py @@ -22,7 +22,10 @@ places where actual behavior differs from the spec. from __future__ import print_function -def assert_has_keys(dict, required=[], optional=[]): +def assert_has_keys(dict, required=None, optional=None): + required = required or [] + optional = optional or [] + for k in required: try: assert k in dict diff --git a/cinderclient/tests/v1/test_shell.py b/cinderclient/tests/v1/test_shell.py index 0b9cbe7d9..5388104ab 100644 --- a/cinderclient/tests/v1/test_shell.py +++ b/cinderclient/tests/v1/test_shell.py @@ -79,8 +79,8 @@ class ShellTest(utils.TestCase): # mimic the result of argparse's parse_args() method class Arguments: - def __init__(self, metadata=[]): - self.metadata = metadata + def __init__(self, metadata=None): + self.metadata = metadata or [] inputs = [ ([], {}), diff --git a/cinderclient/utils.py b/cinderclient/utils.py index 018f12acd..a145208bd 100644 --- a/cinderclient/utils.py +++ b/cinderclient/utils.py @@ -154,7 +154,8 @@ def _print(pt, order): print(strutils.safe_encode(pt.get_string(sortby=order))) -def print_list(objs, fields, formatters={}, order_by=None): +def print_list(objs, fields, formatters=None, order_by=None): + formatters = formatters or {} mixed_case_fields = ['serverId'] pt = prettytable.PrettyTable([f for f in fields], caching=False) pt.aligns = ['l' for f in fields]