diff --git a/openstackclient/tests/compute/v2/fakes.py b/openstackclient/tests/compute/v2/fakes.py
index 7f38b32b9b..948d9e9740 100644
--- a/openstackclient/tests/compute/v2/fakes.py
+++ b/openstackclient/tests/compute/v2/fakes.py
@@ -100,8 +100,7 @@ class FakeAggregate(object):
         :return:
             A FakeResource object, with id and other attributes
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attribute
         aggregate_info = {
@@ -220,7 +219,7 @@ class FakeHypervisor(object):
     """Fake one or more hypervisor."""
 
     @staticmethod
-    def create_one_hypervisor(attrs={}):
+    def create_one_hypervisor(attrs=None):
         """Create a fake hypervisor.
 
         :param Dictionary attrs:
@@ -228,6 +227,8 @@ class FakeHypervisor(object):
         :return:
             A FakeResource object, with id, hypervisor_hostname, and so on
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         hypervisor_info = {
             'id': 'hypervisor-id-' + uuid.uuid4().hex,
@@ -266,7 +267,7 @@ class FakeHypervisor(object):
         return hypervisor
 
     @staticmethod
-    def create_hypervisors(attrs={}, count=2):
+    def create_hypervisors(attrs=None, count=2):
         """Create multiple fake hypervisors.
 
         :param Dictionary attrs:
@@ -287,7 +288,7 @@ class FakeHypervisorStats(object):
     """Fake one or more hypervisor stats."""
 
     @staticmethod
-    def create_one_hypervisor_stats(attrs={}):
+    def create_one_hypervisor_stats(attrs=None):
         """Create a fake hypervisor stats.
 
         :param Dictionary attrs:
@@ -295,6 +296,8 @@ class FakeHypervisorStats(object):
         :return:
             A FakeResource object, with id, hypervisor_hostname, and so on
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         stats_info = {
             'count': 2,
@@ -322,7 +325,7 @@ class FakeHypervisorStats(object):
         return hypervisor_stats
 
     @staticmethod
-    def create_hypervisors_stats(attrs={}, count=2):
+    def create_hypervisors_stats(attrs=None, count=2):
         """Create multiple fake hypervisors stats.
 
         :param Dictionary attrs:
@@ -352,8 +355,7 @@ class FakeSecurityGroup(object):
         :return:
             A FakeResource object, with id, name, etc.
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         security_group_attrs = {
@@ -403,8 +405,7 @@ class FakeSecurityGroupRule(object):
         :return:
             A FakeResource object, with id, etc.
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         security_group_rule_attrs = {
@@ -448,7 +449,7 @@ class FakeServer(object):
     """Fake one or more compute servers."""
 
     @staticmethod
-    def create_one_server(attrs={}, methods={}):
+    def create_one_server(attrs=None, methods=None):
         """Create a fake server.
 
         :param Dictionary attrs:
@@ -458,6 +459,9 @@ class FakeServer(object):
         :return:
             A FakeResource object, with id, name, metadata
         """
+        attrs = attrs or {}
+        methods = methods or {}
+
         # Set default attributes.
         server_info = {
             'id': 'server-id-' + uuid.uuid4().hex,
@@ -480,7 +484,7 @@ class FakeServer(object):
         return server
 
     @staticmethod
-    def create_servers(attrs={}, methods={}, count=2):
+    def create_servers(attrs=None, methods=None, count=2):
         """Create multiple fake servers.
 
         :param Dictionary attrs:
@@ -530,8 +534,7 @@ class FakeFlavor(object):
         :return:
             A FakeResource object, with id, name, ram, vcpus, properties
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         flavor_info = {
@@ -569,7 +572,7 @@ class FakeFlavor(object):
         return flavor
 
     @staticmethod
-    def create_flavors(attrs={}, count=2):
+    def create_flavors(attrs=None, count=2):
         """Create multiple fake flavors.
 
         :param Dictionary attrs:
@@ -617,10 +620,9 @@ class FakeKeypair(object):
         :return:
             A FakeResource
         """
-        # Set default attributes.
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
+        # Set default attributes.
         keypair_info = {
             'name': 'keypair-name-' + uuid.uuid4().hex,
             'fingerprint': 'dummy',
@@ -661,7 +663,7 @@ class FakeAvailabilityZone(object):
     """Fake one or more compute availability zones (AZs)."""
 
     @staticmethod
-    def create_one_availability_zone(attrs={}):
+    def create_one_availability_zone(attrs=None):
         """Create a fake AZ.
 
         :param Dictionary attrs:
@@ -669,6 +671,8 @@ class FakeAvailabilityZone(object):
         :return:
             A FakeResource object with zoneName, zoneState, etc.
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         host_name = uuid.uuid4().hex
         service_name = uuid.uuid4().hex
@@ -692,7 +696,7 @@ class FakeAvailabilityZone(object):
         return availability_zone
 
     @staticmethod
-    def create_availability_zones(attrs={}, count=2):
+    def create_availability_zones(attrs=None, count=2):
         """Create multiple fake AZs.
 
         :param Dictionary attrs:
@@ -715,7 +719,7 @@ class FakeFloatingIP(object):
     """Fake one or more floating ip."""
 
     @staticmethod
-    def create_one_floating_ip(attrs={}):
+    def create_one_floating_ip(attrs=None):
         """Create a fake floating ip.
 
         :param Dictionary attrs:
@@ -723,6 +727,8 @@ class FakeFloatingIP(object):
         :return:
             A FakeResource object, with id, ip, and so on
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         floating_ip_attrs = {
             'id': 'floating-ip-id-' + uuid.uuid4().hex,
@@ -742,7 +748,7 @@ class FakeFloatingIP(object):
         return floating_ip
 
     @staticmethod
-    def create_floating_ips(attrs={}, count=2):
+    def create_floating_ips(attrs=None, count=2):
         """Create multiple fake floating ips.
 
         :param Dictionary attrs:
@@ -781,7 +787,7 @@ class FakeNetwork(object):
     """Fake one or more networks."""
 
     @staticmethod
-    def create_one_network(attrs={}):
+    def create_one_network(attrs=None):
         """Create a fake network.
 
         :param Dictionary attrs:
@@ -789,6 +795,8 @@ class FakeNetwork(object):
         :return:
             A FakeResource object, with id, label, cidr and so on
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         network_attrs = {
             'bridge': 'br100',
@@ -834,7 +842,7 @@ class FakeNetwork(object):
         return network
 
     @staticmethod
-    def create_networks(attrs={}, count=2):
+    def create_networks(attrs=None, count=2):
         """Create multiple fake networks.
 
         :param Dictionary attrs:
@@ -863,8 +871,7 @@ class FakeHost(object):
         :return:
             A FakeResource object, with id and other attributes
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         host_info = {
diff --git a/openstackclient/tests/fakes.py b/openstackclient/tests/fakes.py
index f0cebb06d3..46f983dc46 100644
--- a/openstackclient/tests/fakes.py
+++ b/openstackclient/tests/fakes.py
@@ -142,7 +142,7 @@ class FakeModule(object):
 
 class FakeResource(object):
 
-    def __init__(self, manager=None, info={}, loaded=False, methods={}):
+    def __init__(self, manager=None, info=None, loaded=False, methods=None):
         """Set attributes and methods for a resource.
 
         :param manager:
@@ -154,6 +154,9 @@ class FakeResource(object):
         :param Dictionary methods:
             A dictionary with all methods
         """
+        info = info or {}
+        methods = methods or {}
+
         self.__name__ = type(self).__name__
         self.manager = manager
         self._info = info
@@ -189,9 +192,12 @@ class FakeResource(object):
 
 class FakeResponse(requests.Response):
 
-    def __init__(self, headers={}, status_code=200, data=None, encoding=None):
+    def __init__(self, headers=None, status_code=200,
+                 data=None, encoding=None):
         super(FakeResponse, self).__init__()
 
+        headers = headers or {}
+
         self.status_code = status_code
 
         self.headers.update(headers)
diff --git a/openstackclient/tests/image/v2/fakes.py b/openstackclient/tests/image/v2/fakes.py
index 3555d2d4ed..f90d846d6a 100644
--- a/openstackclient/tests/image/v2/fakes.py
+++ b/openstackclient/tests/image/v2/fakes.py
@@ -181,7 +181,7 @@ class FakeImage(object):
     """
 
     @staticmethod
-    def create_one_image(attrs={}):
+    def create_one_image(attrs=None):
         """Create a fake image.
 
         :param Dictionary attrs:
@@ -190,6 +190,8 @@ class FakeImage(object):
             A FakeResource object with id, name, owner, protected,
             visibility and tags attrs
         """
+        attrs = attrs or {}
+
         # Set default attribute
         image_info = {
             'id': 'image-id' + uuid.uuid4().hex,
@@ -210,7 +212,7 @@ class FakeImage(object):
         return image
 
     @staticmethod
-    def create_images(attrs={}, count=2):
+    def create_images(attrs=None, count=2):
         """Create multiple fake images.
 
         :param Dictionary attrs:
diff --git a/openstackclient/tests/network/v2/fakes.py b/openstackclient/tests/network/v2/fakes.py
index 5fd7ea3b86..1989b515eb 100644
--- a/openstackclient/tests/network/v2/fakes.py
+++ b/openstackclient/tests/network/v2/fakes.py
@@ -83,8 +83,7 @@ class FakeAddressScope(object):
         :return:
             A FakeResource object with name, id, etc.
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         address_scope_attrs = {
@@ -112,7 +111,7 @@ class FakeAvailabilityZone(object):
     """Fake one or more network availability zones (AZs)."""
 
     @staticmethod
-    def create_one_availability_zone(attrs={}):
+    def create_one_availability_zone(attrs=None):
         """Create a fake AZ.
 
         :param Dictionary attrs:
@@ -120,6 +119,8 @@ class FakeAvailabilityZone(object):
         :return:
             A FakeResource object with name, state, etc.
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         availability_zone = {
             'name': uuid.uuid4().hex,
@@ -136,7 +137,7 @@ class FakeAvailabilityZone(object):
         return availability_zone
 
     @staticmethod
-    def create_availability_zones(attrs={}, count=2):
+    def create_availability_zones(attrs=None, count=2):
         """Create multiple fake AZs.
 
         :param Dictionary attrs:
@@ -159,7 +160,7 @@ class FakeNetwork(object):
     """Fake one or more networks."""
 
     @staticmethod
-    def create_one_network(attrs={}):
+    def create_one_network(attrs=None):
         """Create a fake network.
 
         :param Dictionary attrs:
@@ -168,6 +169,8 @@ class FakeNetwork(object):
             A FakeResource object, with id, name, admin_state_up,
             router_external, status, subnets, tenant_id
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         network_attrs = {
             'id': 'network-id-' + uuid.uuid4().hex,
@@ -196,7 +199,7 @@ class FakeNetwork(object):
         return network
 
     @staticmethod
-    def create_networks(attrs={}, count=2):
+    def create_networks(attrs=None, count=2):
         """Create multiple fake networks.
 
         :param Dictionary attrs:
@@ -236,16 +239,16 @@ class FakePort(object):
     """Fake one or more ports."""
 
     @staticmethod
-    def create_one_port(attrs={}):
+    def create_one_port(attrs=None):
         """Create a fake port.
 
         :param Dictionary attrs:
             A dictionary with all attributes
-        :param Dictionary methods:
-            A dictionary with all methods
         :return:
             A FakeResource object, with id, name, etc.
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         port_attrs = {
             'admin_state_up': True,
@@ -288,7 +291,7 @@ class FakePort(object):
         return port
 
     @staticmethod
-    def create_ports(attrs={}, count=2):
+    def create_ports(attrs=None, count=2):
         """Create multiple fake ports.
 
         :param Dictionary attrs:
@@ -328,7 +331,7 @@ class FakeRouter(object):
     """Fake one or more routers."""
 
     @staticmethod
-    def create_one_router(attrs={}):
+    def create_one_router(attrs=None):
         """Create a fake router.
 
         :param Dictionary attrs:
@@ -337,6 +340,8 @@ class FakeRouter(object):
             A FakeResource object, with id, name, admin_state_up,
             status, tenant_id
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         router_attrs = {
             'id': 'router-id-' + uuid.uuid4().hex,
@@ -364,7 +369,7 @@ class FakeRouter(object):
         return router
 
     @staticmethod
-    def create_routers(attrs={}, count=2):
+    def create_routers(attrs=None, count=2):
         """Create multiple fake routers.
 
         :param Dictionary attrs:
@@ -412,8 +417,7 @@ class FakeSecurityGroup(object):
         :return:
             A FakeResource object, with id, name, etc.
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         security_group_attrs = {
@@ -467,8 +471,7 @@ class FakeSecurityGroupRule(object):
         :return:
             A FakeResource object, with id, etc.
         """
-        if attrs is None:
-            attrs = {}
+        attrs = attrs or {}
 
         # Set default attributes.
         security_group_rule_attrs = {
@@ -519,7 +522,7 @@ class FakeSubnet(object):
     """Fake one or more subnets."""
 
     @staticmethod
-    def create_one_subnet(attrs={}):
+    def create_one_subnet(attrs=None):
         """Create a fake subnet.
 
         :param Dictionary attrs:
@@ -527,6 +530,8 @@ class FakeSubnet(object):
         :return:
             A FakeResource object faking the subnet
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         project_id = 'project-id-' + uuid.uuid4().hex
         subnet_attrs = {
@@ -551,13 +556,14 @@ class FakeSubnet(object):
 
         subnet = fakes.FakeResource(info=copy.deepcopy(subnet_attrs),
                                     loaded=True)
+
         # Set attributes with special mappings in OpenStack SDK.
         subnet.project_id = subnet_attrs['tenant_id']
 
         return subnet
 
     @staticmethod
-    def create_subnets(attrs={}, count=2):
+    def create_subnets(attrs=None, count=2):
         """Create multiple fake subnets.
 
         :param Dictionary attrs:
@@ -578,7 +584,7 @@ class FakeFloatingIP(object):
     """Fake one or more floating ip."""
 
     @staticmethod
-    def create_one_floating_ip(attrs={}):
+    def create_one_floating_ip(attrs=None):
         """Create a fake floating ip.
 
         :param Dictionary attrs:
@@ -586,6 +592,8 @@ class FakeFloatingIP(object):
         :return:
             A FakeResource object, with id, ip, and so on
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         floating_ip_attrs = {
             'id': 'floating-ip-id-' + uuid.uuid4().hex,
@@ -614,7 +622,7 @@ class FakeFloatingIP(object):
         return floating_ip
 
     @staticmethod
-    def create_floating_ips(attrs={}, count=2):
+    def create_floating_ips(attrs=None, count=2):
         """Create multiple fake floating ips.
 
         :param Dictionary attrs:
@@ -653,7 +661,7 @@ class FakeSubnetPool(object):
     """Fake one or more subnet pools."""
 
     @staticmethod
-    def create_one_subnet_pool(attrs={}):
+    def create_one_subnet_pool(attrs=None):
         """Create a fake subnet pool.
 
         :param Dictionary attrs:
@@ -661,6 +669,8 @@ class FakeSubnetPool(object):
         :return:
             A FakeResource object faking the subnet pool
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         subnet_pool_attrs = {
             'id': 'subnet-pool-id-' + uuid.uuid4().hex,
@@ -691,7 +701,7 @@ class FakeSubnetPool(object):
         return subnet_pool
 
     @staticmethod
-    def create_subnet_pools(attrs={}, count=2):
+    def create_subnet_pools(attrs=None, count=2):
         """Create multiple fake subnet pools.
 
         :param Dictionary attrs:
diff --git a/openstackclient/tests/volume/v2/fakes.py b/openstackclient/tests/volume/v2/fakes.py
index 6e631c41ea..b7994b5f85 100644
--- a/openstackclient/tests/volume/v2/fakes.py
+++ b/openstackclient/tests/volume/v2/fakes.py
@@ -281,7 +281,7 @@ class FakeVolume(object):
     """
 
     @staticmethod
-    def create_one_volume(attrs={}):
+    def create_one_volume(attrs=None):
         """Create a fake volume.
 
         :param Dictionary attrs:
@@ -289,6 +289,8 @@ class FakeVolume(object):
         :retrun:
             A FakeResource object with id, name, status, etc.
         """
+        attrs = attrs or {}
+
         # Set default attribute
         volume_info = {
             'id': 'volume-id' + uuid.uuid4().hex,
@@ -320,7 +322,7 @@ class FakeVolume(object):
         return volume
 
     @staticmethod
-    def create_volumes(attrs={}, count=2):
+    def create_volumes(attrs=None, count=2):
         """Create multiple fake volumes.
 
         :param Dictionary attrs:
@@ -361,7 +363,7 @@ class FakeAvailabilityZone(object):
     """Fake one or more volume availability zones (AZs)."""
 
     @staticmethod
-    def create_one_availability_zone(attrs={}):
+    def create_one_availability_zone(attrs=None):
         """Create a fake AZ.
 
         :param Dictionary attrs:
@@ -369,6 +371,8 @@ class FakeAvailabilityZone(object):
         :return:
             A FakeResource object with zoneName, zoneState, etc.
         """
+        attrs = attrs or {}
+
         # Set default attributes.
         availability_zone = {
             'zoneName': uuid.uuid4().hex,
@@ -384,7 +388,7 @@ class FakeAvailabilityZone(object):
         return availability_zone
 
     @staticmethod
-    def create_availability_zones(attrs={}, count=2):
+    def create_availability_zones(attrs=None, count=2):
         """Create multiple fake AZs.
 
         :param Dictionary attrs: