diff --git a/swift/common/internal_client.py b/swift/common/internal_client.py
index c477a4960e..ad876a38ed 100644
--- a/swift/common/internal_client.py
+++ b/swift/common/internal_client.py
@@ -711,10 +711,14 @@ class SimpleClient(object):
         self.retries = retries
 
     def base_request(self, method, container=None, name=None, prefix=None,
-                     headers={}, proxy=None, contents=None, full_listing=None):
+                     headers=None, proxy=None, contents=None,
+                     full_listing=None):
         # Common request method
         url = self.url
 
+        if headers is None:
+            headers = {}
+
         if self.token:
             headers['X-Auth-Token'] = self.token
 
diff --git a/test/functional/swift_test_client.py b/test/functional/swift_test_client.py
index 142daae556..d19edaedc7 100644
--- a/test/functional/swift_test_client.py
+++ b/test/functional/swift_test_client.py
@@ -197,7 +197,12 @@ class Connection(object):
                                           port=self.storage_port)
         #self.connection.set_debuglevel(3)
 
-    def make_path(self, path=[], cfg={}):
+    def make_path(self, path=None, cfg=None):
+        if path is None:
+            path = []
+        if cfg is None:
+            cfg = {}
+
         if cfg.get('version_only_path'):
             return '/' + self.storage_url.split('/')[1]
 
@@ -210,7 +215,9 @@ class Connection(object):
         else:
             return self.storage_url
 
-    def make_headers(self, hdrs, cfg={}):
+    def make_headers(self, hdrs, cfg=None):
+        if cfg is None:
+            cfg = {}
         headers = {}
 
         if not cfg.get('no_auth_token'):
@@ -220,8 +227,16 @@ class Connection(object):
             headers.update(hdrs)
         return headers
 
-    def make_request(self, method, path=[], data='', hdrs={}, parms={},
-                     cfg={}):
+    def make_request(self, method, path=None, data='', hdrs=None, parms=None,
+                     cfg=None):
+        if path is None:
+            path = []
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         if not cfg.get('absolute_path'):
             # Set absolute_path=True to make a request to exactly the given
             # path, not storage path + given path. Useful for
@@ -279,7 +294,16 @@ class Connection(object):
                            'Attempts: %s, Failures: %s' %
                            (request, len(fail_messages), fail_messages))
 
-    def put_start(self, path, hdrs={}, parms={}, cfg={}, chunked=False):
+    def put_start(self, path, hdrs=None, parms=None, cfg=None, chunked=False):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
+
+        self.http_connect()
+
         path = self.make_path(path, cfg)
         headers = self.make_headers(hdrs, cfg=cfg)
 
@@ -322,7 +346,10 @@ class Base(object):
     def __str__(self):
         return self.name
 
-    def header_fields(self, required_fields, optional_fields=()):
+    def header_fields(self, required_fields, optional_fields=None):
+        if optional_fields is None:
+            optional_fields = ()
+
         headers = dict(self.conn.response.getheaders())
         ret = {}
 
@@ -352,7 +379,11 @@ class Account(Base):
         self.conn = conn
         self.name = str(name)
 
-    def update_metadata(self, metadata={}, cfg={}):
+    def update_metadata(self, metadata=None, cfg=None):
+        if metadata is None:
+            metadata = {}
+        if cfg is None:
+            cfg = {}
         headers = dict(("X-Account-Meta-%s" % k, v)
                        for k, v in metadata.items())
 
@@ -365,7 +396,14 @@ class Account(Base):
     def container(self, container_name):
         return Container(self.conn, self.name, container_name)
 
-    def containers(self, hdrs={}, parms={}, cfg={}):
+    def containers(self, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
+
         format_type = parms.get('format', None)
         if format_type not in [None, 'json', 'xml']:
             raise RequestError('Invalid format: %s' % format_type)
@@ -411,7 +449,13 @@ class Account(Base):
 
         return listing_empty(self.containers)
 
-    def info(self, hdrs={}, parms={}, cfg={}):
+    def info(self, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         if self.conn.make_request('HEAD', self.path, hdrs=hdrs,
                                   parms=parms, cfg=cfg) != 204:
 
@@ -435,11 +479,21 @@ class Container(Base):
         self.account = str(account)
         self.name = str(name)
 
-    def create(self, hdrs={}, parms={}, cfg={}):
+    def create(self, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         return self.conn.make_request('PUT', self.path, hdrs=hdrs,
                                       parms=parms, cfg=cfg) in (201, 202)
 
-    def delete(self, hdrs={}, parms={}):
+    def delete(self, hdrs=None, parms=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
         return self.conn.make_request('DELETE', self.path, hdrs=hdrs,
                                       parms=parms) == 204
 
@@ -457,7 +511,13 @@ class Container(Base):
     def file(self, file_name):
         return File(self.conn, self.account, self.name, file_name)
 
-    def files(self, hdrs={}, parms={}, cfg={}):
+    def files(self, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         format_type = parms.get('format', None)
         if format_type not in [None, 'json', 'xml']:
             raise RequestError('Invalid format: %s' % format_type)
@@ -507,7 +567,13 @@ class Container(Base):
         raise ResponseError(self.conn.response, 'GET',
                             self.conn.make_path(self.path))
 
-    def info(self, hdrs={}, parms={}, cfg={}):
+    def info(self, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         self.conn.make_request('HEAD', self.path, hdrs=hdrs,
                                parms=parms, cfg=cfg)
 
@@ -538,7 +604,9 @@ class File(Base):
         self.size = None
         self.metadata = {}
 
-    def make_headers(self, cfg={}):
+    def make_headers(self, cfg=None):
+        if cfg is None:
+            cfg = {}
         headers = {}
         if not cfg.get('no_content_length'):
             if cfg.get('set_content_length'):
@@ -575,7 +643,13 @@ class File(Base):
         data.seek(0)
         return checksum.hexdigest()
 
-    def copy(self, dest_cont, dest_file, hdrs={}, parms={}, cfg={}):
+    def copy(self, dest_cont, dest_file, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         if 'destination' in cfg:
             headers = {'Destination': cfg['destination']}
         elif cfg.get('no_destination'):
@@ -590,7 +664,11 @@ class File(Base):
         return self.conn.make_request('COPY', self.path, hdrs=headers,
                                       parms=parms) == 201
 
-    def delete(self, hdrs={}, parms={}):
+    def delete(self, hdrs=None, parms=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
         if self.conn.make_request('DELETE', self.path, hdrs=hdrs,
                                   parms=parms) != 204:
 
@@ -599,7 +677,13 @@ class File(Base):
 
         return True
 
-    def info(self, hdrs={}, parms={}, cfg={}):
+    def info(self, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
         if self.conn.make_request('HEAD', self.path, hdrs=hdrs,
                                   parms=parms, cfg=cfg) != 200:
 
@@ -615,7 +699,11 @@ class File(Base):
         header_fields['etag'] = header_fields['etag'].strip('"')
         return header_fields
 
-    def initialize(self, hdrs={}, parms={}):
+    def initialize(self, hdrs=None, parms=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
         if not self.name:
             return False
 
@@ -660,7 +748,11 @@ class File(Base):
         return data
 
     def read(self, size=-1, offset=0, hdrs=None, buffer=None,
-             callback=None, cfg={}, parms={}):
+             callback=None, cfg=None, parms=None):
+        if cfg is None:
+            cfg = {}
+        if parms is None:
+            parms = {}
 
         if size > 0:
             range_string = 'bytes=%d-%d' % (offset, (offset + size) - 1)
@@ -717,7 +809,12 @@ class File(Base):
         finally:
             fobj.close()
 
-    def sync_metadata(self, metadata={}, cfg={}):
+    def sync_metadata(self, metadata=None, cfg=None):
+        if metadata is None:
+            metadata = {}
+        if cfg is None:
+            cfg = {}
+
         self.metadata.update(metadata)
 
         if self.metadata:
@@ -737,7 +834,14 @@ class File(Base):
 
         return True
 
-    def chunked_write(self, data=None, hdrs={}, parms={}, cfg={}):
+    def chunked_write(self, data=None, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
+
         if data is not None and self.chunked_write_in_progress:
             self.conn.put_data(data, True)
         elif data is not None:
@@ -756,8 +860,15 @@ class File(Base):
         else:
             raise RuntimeError
 
-    def write(self, data='', hdrs={}, parms={}, callback=None, cfg={},
+    def write(self, data='', hdrs=None, parms=None, callback=None, cfg=None,
               return_resp=False):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
+
         block_size = 2 ** 20
 
         if isinstance(data, file):
@@ -808,7 +919,14 @@ class File(Base):
 
         return True
 
-    def write_random(self, size=None, hdrs={}, parms={}, cfg={}):
+    def write_random(self, size=None, hdrs=None, parms=None, cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
+
         data = self.random_data(size)
         if not self.write(data, hdrs=hdrs, parms=parms, cfg=cfg):
             raise ResponseError(self.conn.response, 'PUT',
@@ -816,7 +934,15 @@ class File(Base):
         self.md5 = self.compute_md5sum(StringIO.StringIO(data))
         return data
 
-    def write_random_return_resp(self, size=None, hdrs={}, parms={}, cfg={}):
+    def write_random_return_resp(self, size=None, hdrs=None, parms=None,
+                                 cfg=None):
+        if hdrs is None:
+            hdrs = {}
+        if parms is None:
+            parms = {}
+        if cfg is None:
+            cfg = {}
+
         data = self.random_data(size)
         resp = self.write(data, hdrs=hdrs, parms=parms, cfg=cfg,
                           return_resp=True)
diff --git a/test/unit/account/test_reaper.py b/test/unit/account/test_reaper.py
index e122fdb612..3b83fa9640 100644
--- a/test/unit/account/test_reaper.py
+++ b/test/unit/account/test_reaper.py
@@ -190,7 +190,12 @@ class TestReaper(unittest.TestCase):
             fd.write('')
         return devices_path
 
-    def init_reaper(self, conf={}, myips=['10.10.10.1'], fakelogger=False):
+    def init_reaper(self, conf=None, myips=None, fakelogger=False):
+        if conf is None:
+            conf = {}
+        if myips is None:
+            myips = ['10.10.10.1']
+
         r = reaper.AccountReaper(conf)
         r.stats_return_codes = {}
         r.stats_containers_deleted = 0
diff --git a/test/unit/common/middleware/test_account_quotas.py b/test/unit/common/middleware/test_account_quotas.py
index e040dd6a6c..8660cf5e48 100644
--- a/test/unit/common/middleware/test_account_quotas.py
+++ b/test/unit/common/middleware/test_account_quotas.py
@@ -34,7 +34,9 @@ class FakeCache(object):
 
 
 class FakeBadApp(object):
-    def __init__(self, headers=[]):
+    def __init__(self, headers=None):
+        if headers is None:
+            headers = []
         self.headers = headers
 
     def __call__(self, env, start_response):
@@ -43,7 +45,9 @@ class FakeBadApp(object):
 
 
 class FakeApp(object):
-    def __init__(self, headers=[]):
+    def __init__(self, headers=None):
+        if headers is None:
+            headers = []
         self.headers = headers
 
     def __call__(self, env, start_response):
diff --git a/test/unit/common/middleware/test_gatekeeper.py b/test/unit/common/middleware/test_gatekeeper.py
index 846baecb76..e4109b0c3d 100644
--- a/test/unit/common/middleware/test_gatekeeper.py
+++ b/test/unit/common/middleware/test_gatekeeper.py
@@ -20,7 +20,10 @@ from swift.common.middleware import gatekeeper
 
 
 class FakeApp(object):
-    def __init__(self, headers={}):
+    def __init__(self, headers=None):
+        if headers is None:
+            headers = {}
+
         self.headers = headers
         self.req = None
 
diff --git a/test/unit/common/middleware/test_keystoneauth.py b/test/unit/common/middleware/test_keystoneauth.py
index 8f5bbec27a..70a4b33262 100644
--- a/test/unit/common/middleware/test_keystoneauth.py
+++ b/test/unit/common/middleware/test_keystoneauth.py
@@ -188,7 +188,9 @@ class TestAuthorize(unittest.TestCase):
             identity['HTTP_X_TENANT_ID'])
 
     def _get_identity(self, tenant_id='tenant_id', tenant_name='tenant_name',
-                      user_id='user_id', user_name='user_name', roles=[]):
+                      user_id='user_id', user_name='user_name', roles=None):
+        if roles is None:
+            roles = []
         if isinstance(roles, list):
             roles = ','.join(roles)
         return {'HTTP_X_USER_ID': user_id,
diff --git a/test/unit/common/middleware/test_proxy_logging.py b/test/unit/common/middleware/test_proxy_logging.py
index c577fd07e0..4fa5b2b8f7 100644
--- a/test/unit/common/middleware/test_proxy_logging.py
+++ b/test/unit/common/middleware/test_proxy_logging.py
@@ -27,7 +27,10 @@ from swift.common.swob import Request, Response
 
 class FakeApp(object):
 
-    def __init__(self, body=['FAKE APP'], response_str='200 OK'):
+    def __init__(self, body=None, response_str='200 OK'):
+        if body is None:
+            body = ['FAKE APP']
+
         self.body = body
         self.response_str = response_str
 
@@ -48,7 +51,10 @@ class FakeAppThatExcepts(object):
 
 class FakeAppNoContentLengthNoTransferEncoding(object):
 
-    def __init__(self, body=['FAKE APP']):
+    def __init__(self, body=None):
+        if body is None:
+            body = ['FAKE APP']
+
         self.body = body
 
     def __call__(self, env, start_response):
diff --git a/test/unit/common/test_internal_client.py b/test/unit/common/test_internal_client.py
index 8a10106737..b8628074d1 100644
--- a/test/unit/common/test_internal_client.py
+++ b/test/unit/common/test_internal_client.py
@@ -1045,7 +1045,8 @@ class TestSimpleClient(unittest.TestCase):
         urlopen.return_value.read.return_value = ''
         req = urllib2.Request('http://127.0.0.1', method='GET')
         request.side_effect = [urllib2.URLError(''), req]
-        sc = internal_client.SimpleClient(url='http://127.0.0.1', retries=1)
+        sc = internal_client.SimpleClient(url='http://127.0.0.1', retries=1,
+                                          token='token')
 
         retval = sc.retry_request('GET')
         self.assertEqual(request.call_count, 3)
diff --git a/test/unit/common/test_manager.py b/test/unit/common/test_manager.py
index 512e98f87c..0468cb701b 100644
--- a/test/unit/common/test_manager.py
+++ b/test/unit/common/test_manager.py
@@ -147,7 +147,9 @@ class TestManagerModule(unittest.TestCase):
         class MockOs(object):
             WNOHANG = os.WNOHANG
 
-            def __init__(self, pid_map={}):
+            def __init__(self, pid_map=None):
+                if pid_map is None:
+                    pid_map = {}
                 self.pid_map = {}
                 for pid, v in pid_map.items():
                     self.pid_map[pid] = (x for x in v)
diff --git a/test/unit/common/test_utils.py b/test/unit/common/test_utils.py
index 4208d16387..b6e7b7a1b9 100644
--- a/test/unit/common/test_utils.py
+++ b/test/unit/common/test_utils.py
@@ -62,7 +62,14 @@ from test.unit import FakeLogger
 
 class MockOs(object):
 
-    def __init__(self, pass_funcs=[], called_funcs=[], raise_funcs=[]):
+    def __init__(self, pass_funcs=None, called_funcs=None, raise_funcs=None):
+        if pass_funcs is None:
+            pass_funcs = []
+        if called_funcs is None:
+            called_funcs = []
+        if raise_funcs is None:
+            raise_funcs = []
+
         self.closed_fds = []
         for func in pass_funcs:
             setattr(self, func, self.pass_func)
diff --git a/test/unit/common/test_wsgi.py b/test/unit/common/test_wsgi.py
index 06e3c65553..425383aea6 100644
--- a/test/unit/common/test_wsgi.py
+++ b/test/unit/common/test_wsgi.py
@@ -464,7 +464,11 @@ class TestWSGI(unittest.TestCase):
     def test_pre_auth_req(self):
         class FakeReq(object):
             @classmethod
-            def fake_blank(cls, path, environ={}, body='', headers={}):
+            def fake_blank(cls, path, environ=None, body='', headers=None):
+                if environ is None:
+                    environ = {}
+                if headers is None:
+                    headers = {}
                 self.assertEquals(environ['swift.authorize']('test'), None)
                 self.assertFalse('HTTP_X_TRANS_ID' in environ)
         was_blank = Request.blank