From bc895486babf221444d0f36c935fb11f7a3eaec8 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Sun, 19 Jun 2016 00:18:13 -0700 Subject: [PATCH] Removes the use of mutables as default args Passing mutable objects as default args is a known Python pitfall. We'd better avoid this. This commit changes mutable default args with None, 'arg = [] if arg is None else arg'. TrivialFix Change-Id: I2909b111266c696bcdcd26db167d3ad5e0603e45 --- ironic/api/middleware/auth_token.py | 5 +++-- ironic/common/service.py | 3 ++- ironic/tests/unit/api/test_acl.py | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ironic/api/middleware/auth_token.py b/ironic/api/middleware/auth_token.py index 64e6d9dc8f..c2aba19fab 100644 --- a/ironic/api/middleware/auth_token.py +++ b/ironic/api/middleware/auth_token.py @@ -31,7 +31,8 @@ class AuthTokenMiddleware(auth_token.AuthProtocol): for public routes in the API. """ - def __init__(self, app, conf, public_api_routes=[]): + def __init__(self, app, conf, public_api_routes=None): + api_routes = [] if public_api_routes is None else public_api_routes self._ironic_app = app # TODO(mrda): Remove .xml and ensure that doesn't result in a # 401 Authentication Required instead of 404 Not Found @@ -39,7 +40,7 @@ class AuthTokenMiddleware(auth_token.AuthProtocol): try: self.public_api_routes = [re.compile(route_pattern_tpl % route_tpl) - for route_tpl in public_api_routes] + for route_tpl in api_routes] except re.error as e: msg = _('Cannot compile public API routes: %s') % e diff --git a/ironic/common/service.py b/ironic/common/service.py index 18fabccc7c..fa79f8cbde 100644 --- a/ironic/common/service.py +++ b/ironic/common/service.py @@ -116,7 +116,8 @@ class RPCService(service.Service): signal.signal(signal.SIGUSR1, self._handle_signal) -def prepare_service(argv=[]): +def prepare_service(argv=None): + argv = [] if argv is None else argv log.register_options(CONF) log.set_defaults(default_log_levels=['amqp=WARNING', 'amqplib=WARNING', diff --git a/ironic/tests/unit/api/test_acl.py b/ironic/tests/unit/api/test_acl.py index bce7041dc8..65479c1b00 100644 --- a/ironic/tests/unit/api/test_acl.py +++ b/ironic/tests/unit/api/test_acl.py @@ -37,7 +37,9 @@ class TestACL(base.BaseApiTest): self.fake_db_node = db_utils.get_test_node(chassis_id=None) self.node_path = '/nodes/%s' % self.fake_db_node['uuid'] - def get_json(self, path, expect_errors=False, headers=None, q=[], **param): + def get_json(self, path, expect_errors=False, headers=None, q=None, + **param): + q = [] if q is None else q return super(TestACL, self).get_json(path, expect_errors=expect_errors, headers=headers,