diff --git a/functional/test_conditions.py b/functional/test_conditions.py
index 659d372..ebb3c08 100644
--- a/functional/test_conditions.py
+++ b/functional/test_conditions.py
@@ -307,9 +307,6 @@
 
 class CreateUpdateResConditionTest(functional_base.FunctionalTestsBase):
 
-    def setUp(self):
-        super(CreateUpdateResConditionTest, self).setUp()
-
     def res_assert_for_prod(self, resources, bj_prod=True, fj_zone=False,
                             shannxi_provice=False):
         res_names = [res.resource_name for res in resources]
diff --git a/functional/test_create_update.py b/functional/test_create_update.py
index 446c9a3..771404a 100644
--- a/functional/test_create_update.py
+++ b/functional/test_create_update.py
@@ -74,9 +74,6 @@
 
 
 class CreateStackTest(functional_base.FunctionalTestsBase):
-    def setUp(self):
-        super(CreateStackTest, self).setUp()
-
     def test_create_rollback(self):
         values = {'fail': True, 'value': 'test_create_rollback'}
         template = _change_rsrc_properties(test_template_one_resource,
@@ -153,9 +150,6 @@
       wait_secs: 1
 '''
 
-    def setUp(self):
-        super(UpdateStackTest, self).setUp()
-
     def test_stack_update_nochange(self):
         template = _change_rsrc_properties(test_template_one_resource,
                                            ['test1'],
diff --git a/functional/test_create_update_neutron_subnet.py b/functional/test_create_update_neutron_subnet.py
index ceb74a9..31ad6f5 100644
--- a/functional/test_create_update_neutron_subnet.py
+++ b/functional/test_create_update_neutron_subnet.py
@@ -36,9 +36,6 @@
 
 class UpdateSubnetTest(functional_base.FunctionalTestsBase):
 
-    def setUp(self):
-        super(UpdateSubnetTest, self).setUp()
-
     def get_outputs(self, stack_identifier, output_key):
         stack = self.client.stacks.get(stack_identifier)
         output = self._stack_output(stack, output_key)
diff --git a/functional/test_default_parameters.py b/functional/test_default_parameters.py
index 7201969..aa2ca35 100644
--- a/functional/test_default_parameters.py
+++ b/functional/test_default_parameters.py
@@ -63,9 +63,6 @@
                                  expect1=12, expect2=12)),
     ]
 
-    def setUp(self):
-        super(DefaultParametersTest, self).setUp()
-
     def test_defaults(self):
         env = {'parameters': {}, 'parameter_defaults': {}}
         if self.param:
diff --git a/functional/test_encrypted_parameter.py b/functional/test_encrypted_parameter.py
index 21dc925..5ec8a27 100644
--- a/functional/test_encrypted_parameter.py
+++ b/functional/test_encrypted_parameter.py
@@ -43,9 +43,6 @@
     value: { get_param: foo }
 '''
 
-    def setUp(self):
-        super(EncryptedParametersTest, self).setUp()
-
     def test_db_encryption(self):
         # Create a stack with the value of 'foo' to be encrypted
         foo_param = 'my_encrypted_foo'
diff --git a/functional/test_heat_autoscaling.py b/functional/test_heat_autoscaling.py
index e87badb..d41e203 100644
--- a/functional/test_heat_autoscaling.py
+++ b/functional/test_heat_autoscaling.py
@@ -72,9 +72,6 @@
     value: {get_attr: [random_str, value]}
 '''
 
-    def setUp(self):
-        super(HeatAutoscalingTest, self).setUp()
-
     def _assert_output_values(self, stack_id):
         stack = self.client.stacks.get(stack_id)
         all_values = self._stack_output(stack, 'all_values')
@@ -120,9 +117,6 @@
       scaling_adjustment: 1
 '''
 
-    def setUp(self):
-        super(AutoScalingGroupUpdateWithNoChanges, self).setUp()
-
     def test_as_group_update_without_resource_changes(self):
         stack_identifier = self.stack_create(template=self.template)
         new_template = self.template.replace(
diff --git a/functional/test_resource_group.py b/functional/test_resource_group.py
index c0c7de7..8d8cc89 100644
--- a/functional/test_resource_group.py
+++ b/functional/test_resource_group.py
@@ -42,9 +42,6 @@
     value: {get_attr: [random_group, value]}
 '''
 
-    def setUp(self):
-        super(ResourceGroupTest, self).setUp()
-
     def test_resource_group_zero_novalidate(self):
         # Nested resources should be validated only when size > 0
         # This allows features to be disabled via size=0 without
@@ -377,9 +374,6 @@
         )),
     ]
 
-    def setUp(self):
-        super(ResourceGroupTestNullParams, self).setUp()
-
     def test_create_pass_zero_parameter(self):
         templ = self.template.replace('type: empty',
                                       'type: %s' % self.p_type)
@@ -417,9 +411,6 @@
     value: {get_attr: [group1, resource.1.value]}
 '''
 
-    def setUp(self):
-        super(ResourceGroupAdoptTest, self).setUp()
-
     def _yaml_to_json(self, yaml_templ):
         return yaml.safe_load(yaml_templ)
 
@@ -489,9 +480,6 @@
       wait_secs: 2
 '''
 
-    def setUp(self):
-        super(ResourceGroupErrorResourceTest, self).setUp()
-
     def test_fail(self):
         stack_identifier = self.stack_create(
             template=self.template,
diff --git a/functional/test_stack_events.py b/functional/test_stack_events.py
index b1b2339..3638fab 100644
--- a/functional/test_stack_events.py
+++ b/functional/test_stack_events.py
@@ -32,9 +32,6 @@
     value: { get_resource: test_resource }
 '''
 
-    def setUp(self):
-        super(StackEventsTest, self).setUp()
-
     def _verify_event_fields(self, event, event_characteristics):
         self.assertIsNotNone(event_characteristics)
         self.assertIsNotNone(event.event_time)
diff --git a/functional/test_swiftsignal_update.py b/functional/test_swiftsignal_update.py
index 5321014..0cf2f81 100644
--- a/functional/test_swiftsignal_update.py
+++ b/functional/test_swiftsignal_update.py
@@ -33,9 +33,6 @@
 
 class SwiftSignalHandleUpdateTest(functional_base.FunctionalTestsBase):
 
-    def setUp(self):
-        super(SwiftSignalHandleUpdateTest, self).setUp()
-
     def test_stack_update_same_template_replace_no_url(self):
         stack_identifier = self.stack_create(template=test_template)
         stack = self.client.stacks.get(stack_identifier)
diff --git a/functional/test_template_resource.py b/functional/test_template_resource.py
index ebfd73e..ef2f4f5 100644
--- a/functional/test_template_resource.py
+++ b/functional/test_template_resource.py
@@ -47,9 +47,6 @@
   "OS::Heat::RandomString": nested.yaml
 '''
 
-    def setUp(self):
-        super(TemplateResourceTest, self).setUp()
-
     def test_nested_env(self):
         main_templ = '''
 heat_template_version: 2013-05-23
@@ -172,9 +169,6 @@
   "My::NestedSecret": nested.yaml
 '''
 
-    def setUp(self):
-        super(NestedAttributesTest, self).setUp()
-
     def test_stack_ref(self):
         nested_templ = '''
 heat_template_version: 2014-10-16
@@ -496,9 +490,6 @@
                                       expect=NOCHANGE)),
     ]
 
-    def setUp(self):
-        super(TemplateResourceUpdateTest, self).setUp()
-
     def test_template_resource_update_template_schema(self):
         stack_identifier = self.stack_create(
             template=self.main_template,
@@ -598,9 +589,6 @@
     Value: {'Fn::GetAtt': [RealRandom, value]}
 '''
 
-    def setUp(self):
-        super(TemplateResourceAdoptTest, self).setUp()
-
     def _yaml_to_json(self, yaml_templ):
         return yaml.safe_load(yaml_templ)
 
@@ -680,9 +668,6 @@
     Value: {'Fn::GetAtt': [RealRandom, value]}
 '''
 
-    def setUp(self):
-        super(TemplateResourceCheckTest, self).setUp()
-
     def test_check(self):
         stack_identifier = self.stack_create(
             template=self.main_template,
@@ -712,9 +697,6 @@
       wait_secs: 2
 '''
 
-    def setUp(self):
-        super(TemplateResourceErrorMessageTest, self).setUp()
-
     def test_fail(self):
         stack_identifier = self.stack_create(
             template=self.template,
@@ -747,9 +729,6 @@
     type: OS::Heat::RandomString
 '''
 
-    def setUp(self):
-        super(TemplateResourceSuspendResumeTest, self).setUp()
-
     def test_suspend_resume(self):
         """Basic test for template resource suspend resume."""
         stack_identifier = self.stack_create(
diff --git a/functional/test_templates.py b/functional/test_templates.py
index 8b05263..8464d19 100644
--- a/functional/test_templates.py
+++ b/functional/test_templates.py
@@ -39,9 +39,6 @@
         }
     }
 
-    def setUp(self):
-        super(TemplateAPITest, self).setUp()
-
     def test_get_stack_template(self):
         stack_identifier = self.stack_create(
             template=self.template
diff --git a/functional/test_unicode_template.py b/functional/test_unicode_template.py
index 924c110..32c02a5 100644
--- a/functional/test_unicode_template.py
+++ b/functional/test_unicode_template.py
@@ -35,9 +35,6 @@
     value: {get_attr: [\u8d44\u6e90, value]}
 '''
 
-    def setUp(self):
-        super(StackUnicodeTemplateTest, self).setUp()
-
     def _assert_results(self, result):
         self.assertTrue(result['disable_rollback'])
         self.assertIsNone(result['parent'])
