diff --git a/run_tests.sh b/run_tests.sh
index e0473746b..a20231446 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -6,7 +6,7 @@ set -o errexit
 # Increment me any time the environment should be rebuilt.
 # This includes dependency changes, directory renames, etc.
 # Simple integer sequence: 1, 2, 3...
-environment_version=44
+environment_version=45
 #--------------------------------------------------------#
 
 function usage {
diff --git a/test-requirements.txt b/test-requirements.txt
index 42fc78a1b..ec797ff1b 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -2,7 +2,7 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 # Hacking already pins down pep8, pyflakes and flake8
-hacking>=0.8.0,<0.9
+hacking>=0.9.2,<0.10
 # Testing Requirements
 coverage>=3.6
 django-nose
diff --git a/tuskar_ui/api/heat.py b/tuskar_ui/api/heat.py
index 5141a01b2..48b155594 100644
--- a/tuskar_ui/api/heat.py
+++ b/tuskar_ui/api/heat.py
@@ -15,10 +15,8 @@ import urlparse
 
 from django.conf import settings
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
 from horizon.utils import memoized
-
 from openstack_dashboard.api import base
 from openstack_dashboard.api import heat
 from openstack_dashboard.api import keystone
@@ -131,9 +129,9 @@ class Stack(base.APIResourceWrapper):
         """
         # TODO(lsmola) until we have working deployment through Tuskar-API,
         # this will not work
-        #for stack in Stack.list(request):
-        #    if stack.plan and (stack.plan.id == plan.id):
-        #        return stack
+        # for stack in Stack.list(request):
+        #     if stack.plan and (stack.plan.id == plan.id):
+        #         return stack
         try:
             stack = Stack.list(request)[0]
         except IndexError:
@@ -149,8 +147,10 @@ class Stack(base.APIResourceWrapper):
 
     @memoized.memoized
     def resources(self, with_joins=True, role=None):
-        """Return list of OS::Nova::Server Resources associated with the Stack
-           and which are associated with a Role
+        """Return list of OS::Nova::Server Resources
+
+        Return list of OS::Nova::Server Resources associated with the Stack
+        and which are associated with a Role
 
         :param with_joins: should we also retrieve objects associated with each
                            retrieved Resource?
@@ -228,8 +228,7 @@ class Stack(base.APIResourceWrapper):
 
     @cached_property
     def plan(self):
-        """return associated Plan if a plan_id exists within stack
-        parameters.
+        """return associated Plan if a plan_id exists within stack parameters.
 
         :return: associated Plan if plan_id exists and a matching plan
                  exists as well; None otherwise
@@ -238,9 +237,9 @@ class Stack(base.APIResourceWrapper):
         # TODO(lsmola) replace this by actual reference, I am pretty sure
         # the relation won't be stored in parameters, that would mean putting
         # that into template, which doesn't make sense
-        #if 'plan_id' in self.parameters:
-        #    return tuskar.Plan.get(self._request,
-        #                                    self.parameters['plan_id'])
+        # if 'plan_id' in self.parameters:
+        #     return tuskar.Plan.get(self._request,
+        #                                     self.parameters['plan_id'])
         try:
             plan = tuskar.Plan.list(self._request)[0]
         except IndexError:
diff --git a/tuskar_ui/api/node.py b/tuskar_ui/api/node.py
index 120185a7e..1caa376d4 100644
--- a/tuskar_ui/api/node.py
+++ b/tuskar_ui/api/node.py
@@ -75,8 +75,7 @@ class IronicNode(base.APIResourceWrapper):
                memory_mb=None, local_gb=None, mac_addresses=[],
                ipmi_username=None, ipmi_password=None, ssh_address=None,
                ssh_username=None, ssh_key_contents=None, driver=None):
-        """Create a Node in Ironic
-        """
+        """Create a Node in Ironic."""
         if driver == 'pxe_ssh':
             driver_info = {
                 'ssh_address': ssh_address,
@@ -177,7 +176,9 @@ class IronicNode(base.APIResourceWrapper):
 
     @classmethod
     def delete(cls, request, uuid):
-        """Remove the IronicNode matching the ID if it
+        """Delete an IronicNode
+
+        Remove the IronicNode matching the ID if it
         exists; otherwise, does nothing.
 
         :param request: request object
@@ -275,8 +276,7 @@ class BareMetalNode(base.APIResourceWrapper):
                local_gb, mac_addresses, ipmi_username=None, ipmi_password=None,
                ssh_address=None, ssh_username=None, ssh_key_contents=None,
                driver=None):
-        """Create a Nova BareMetalNode
-        """
+        """Create a Nova BareMetalNode."""
         node = baremetalclient(request).create(
             service_host='undercloud',
             cpus=cpus,
@@ -402,8 +402,7 @@ class BareMetalNode(base.APIResourceWrapper):
 
     @cached_property
     def driver(self):
-        """Return driver for this BareMetalNode
-        """
+        """Return driver for this BareMetalNode."""
         return "IPMI + PXE"
 
     @cached_property
diff --git a/tuskar_ui/api/tuskar.py b/tuskar_ui/api/tuskar.py
index 1a99ed972..b41802c47 100644
--- a/tuskar_ui/api/tuskar.py
+++ b/tuskar_ui/api/tuskar.py
@@ -21,6 +21,7 @@ from openstack_dashboard.api import base
 from openstack_dashboard.api import glance
 from openstack_dashboard.api import neutron
 from os_cloud_config import keystone_pki
+
 from tuskarclient import client as tuskar_client
 
 from tuskar_ui.api import flavor
@@ -387,8 +388,7 @@ class Role(base.APIResourceWrapper):
     @classmethod
     @handle_errors(_("Unable to retrieve overcloud role"))
     def get_by_image(cls, request, plan, image):
-        """Return the Tuskar Role whose ImageID
-        parameter matches the passed in image
+        """Return the Role whose ImageID parameter matches the image.
 
         :param request: request object
         :type  request: django.http.HttpRequest
diff --git a/tuskar_ui/cached_property.py b/tuskar_ui/cached_property.py
index d9674fbf8..7e3704412 100644
--- a/tuskar_ui/cached_property.py
+++ b/tuskar_ui/cached_property.py
@@ -47,7 +47,9 @@
 # So we have a copy of it here, with the bug fixed.
 # FIXME: Use django's version when the bug is fixed there.
 class cached_property(object):
-    """Decorator that creates converts a method with a single self argument
+    """Cached property decorator.
+
+    Decorator that creates converts a method with a single self argument
     into a property cached on the instance.
     """
 
diff --git a/tuskar_ui/exceptions.py b/tuskar_ui/exceptions.py
index c733264c0..1d0856489 100644
--- a/tuskar_ui/exceptions.py
+++ b/tuskar_ui/exceptions.py
@@ -12,6 +12,7 @@
 #    under the License.
 
 from openstack_dashboard import exceptions
+
 from tuskarclient.openstack.common.apiclient import exceptions as tuskarclient
 
 NOT_FOUND = exceptions.NOT_FOUND
diff --git a/tuskar_ui/forms.py b/tuskar_ui/forms.py
index 4d2e2596f..33f296af1 100644
--- a/tuskar_ui/forms.py
+++ b/tuskar_ui/forms.py
@@ -16,7 +16,6 @@ import re
 from django import forms
 from django.utils import html
 from django.utils.translation import ugettext_lazy as _
-
 import netaddr
 
 
@@ -119,10 +118,12 @@ class SelfHandlingFormset(forms.formsets.BaseFormSet):
 
 
 class LabelWidget(forms.Widget):
-    """This is a custom widget to show context information just as text,
-       as readonly inputs are confusing.
-       Note that the field also must be required=False, as no input
-       is rendered, and it must be ignored in the handle() method.
+    """A widget for displaying information.
+
+    This is a custom widget to show context information just as text,
+    as readonly inputs are confusing.
+    Note that the field also must be required=False, as no input
+    is rendered, and it must be ignored in the handle() method.
     """
     def render(self, name, value, attrs=None):
         if value:
diff --git a/tuskar_ui/infrastructure/dashboard.py b/tuskar_ui/infrastructure/dashboard.py
index acac4a89d..ce233bdc4 100644
--- a/tuskar_ui/infrastructure/dashboard.py
+++ b/tuskar_ui/infrastructure/dashboard.py
@@ -12,7 +12,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 
diff --git a/tuskar_ui/infrastructure/flavors/panel.py b/tuskar_ui/infrastructure/flavors/panel.py
index 88c39f9b3..2129b292e 100644
--- a/tuskar_ui/infrastructure/flavors/panel.py
+++ b/tuskar_ui/infrastructure/flavors/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/flavors/tables.py b/tuskar_ui/infrastructure/flavors/tables.py
index 6eb412b67..ebabfaf57 100644
--- a/tuskar_ui/infrastructure/flavors/tables.py
+++ b/tuskar_ui/infrastructure/flavors/tables.py
@@ -14,9 +14,8 @@
 
 from django.utils.translation import ugettext_lazy as _
 from horizon import tables
-
-from openstack_dashboard.dashboards.admin.flavors \
-    import tables as flavor_tables
+from openstack_dashboard.dashboards.admin.flavors import (
+    tables as flavor_tables)
 
 from tuskar_ui import api
 
diff --git a/tuskar_ui/infrastructure/flavors/tests.py b/tuskar_ui/infrastructure/flavors/tests.py
index bb9d3767e..a0c5fc2a6 100644
--- a/tuskar_ui/infrastructure/flavors/tests.py
+++ b/tuskar_ui/infrastructure/flavors/tests.py
@@ -15,13 +15,11 @@
 import contextlib
 
 from django.core import urlresolvers
-
-from mock import patch, call  # noqa
-
-from novaclient.v1_1 import servers
-
 from horizon import exceptions
+from mock import patch, call  # noqa
+from novaclient.v1_1 import servers
 from openstack_dashboard.test.test_data import utils
+
 from tuskar_ui import api
 from tuskar_ui.test import helpers as test
 from tuskar_ui.test.test_data import flavor_data
@@ -110,7 +108,7 @@ class FlavorsTest(test.BaseAdminViewTests):
             self.client.get(CREATE_URL)
             # FIXME(tzumainn): I expected the following to work, seems similar
             # to comment on test_index_recoverable_failure
-            #self.assertMessageCount(error=1, warning=0)
+            # self.assertMessageCount(error=1, warning=0)
 
     def test_create_post_ok(self):
         images = TEST_DATA.glanceclient_images.list()
diff --git a/tuskar_ui/infrastructure/flavors/views.py b/tuskar_ui/infrastructure/flavors/views.py
index 6c113b00e..410e354dc 100644
--- a/tuskar_ui/infrastructure/flavors/views.py
+++ b/tuskar_ui/infrastructure/flavors/views.py
@@ -14,7 +14,6 @@
 
 from django.core.urlresolvers import reverse_lazy
 from django.utils.translation import ugettext_lazy as _
-
 import horizon.exceptions
 import horizon.tables
 import horizon.tabs
diff --git a/tuskar_ui/infrastructure/flavors/workflows.py b/tuskar_ui/infrastructure/flavors/workflows.py
index fa93d32af..a9f8a9e29 100644
--- a/tuskar_ui/infrastructure/flavors/workflows.py
+++ b/tuskar_ui/infrastructure/flavors/workflows.py
@@ -14,13 +14,12 @@
 
 from django.forms import fields
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
 from horizon import workflows
-
 from openstack_dashboard.api import glance
-from openstack_dashboard.dashboards.admin.flavors \
-    import workflows as flavor_workflows
+from openstack_dashboard.dashboards.admin.flavors import (
+    workflows as flavor_workflows)
+
 from tuskar_ui import api
 
 
diff --git a/tuskar_ui/infrastructure/history/panel.py b/tuskar_ui/infrastructure/history/panel.py
index 4a1d1591f..0f29c3722 100644
--- a/tuskar_ui/infrastructure/history/panel.py
+++ b/tuskar_ui/infrastructure/history/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/history/tables.py b/tuskar_ui/infrastructure/history/tables.py
index 16b15e5bb..3d17dc415 100644
--- a/tuskar_ui/infrastructure/history/tables.py
+++ b/tuskar_ui/infrastructure/history/tables.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import tables
 
 
diff --git a/tuskar_ui/infrastructure/history/tests.py b/tuskar_ui/infrastructure/history/tests.py
index 8baee73b1..7a687ef2f 100644
--- a/tuskar_ui/infrastructure/history/tests.py
+++ b/tuskar_ui/infrastructure/history/tests.py
@@ -15,10 +15,9 @@
 import contextlib
 
 from django.core import urlresolvers
-
 from mock import patch, call  # noqa
-
 from openstack_dashboard.test.test_data import utils
+
 from tuskar_ui import api
 from tuskar_ui.test import helpers as test
 from tuskar_ui.test.test_data import heat_data
diff --git a/tuskar_ui/infrastructure/images/panel.py b/tuskar_ui/infrastructure/images/panel.py
index a897d14f5..3bb728c4f 100644
--- a/tuskar_ui/infrastructure/images/panel.py
+++ b/tuskar_ui/infrastructure/images/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/images/tables.py b/tuskar_ui/infrastructure/images/tables.py
index 4d95f8ae6..95d1a2f17 100644
--- a/tuskar_ui/infrastructure/images/tables.py
+++ b/tuskar_ui/infrastructure/images/tables.py
@@ -13,12 +13,10 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import tables
-
 from openstack_dashboard import api
-from openstack_dashboard.dashboards.project.images.images \
-    import tables as project_tables
+from openstack_dashboard.dashboards.project.images.images import (
+    tables as project_tables)
 
 
 class CreateImage(project_tables.CreateImage):
diff --git a/tuskar_ui/infrastructure/images/tests.py b/tuskar_ui/infrastructure/images/tests.py
index cf573ae0e..bb037e36c 100644
--- a/tuskar_ui/infrastructure/images/tests.py
+++ b/tuskar_ui/infrastructure/images/tests.py
@@ -14,11 +14,10 @@
 
 import contextlib
 import json
+
 import mock
 from mock import patch, call  # noqa
-
 from django.core import urlresolvers
-
 from openstack_dashboard.dashboards.project.images.images import forms
 
 from tuskar_ui import api
diff --git a/tuskar_ui/infrastructure/images/views.py b/tuskar_ui/infrastructure/images/views.py
index bed054871..a06753e2c 100644
--- a/tuskar_ui/infrastructure/images/views.py
+++ b/tuskar_ui/infrastructure/images/views.py
@@ -16,11 +16,9 @@ import logging
 
 from django.core.urlresolvers import reverse_lazy
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
 from horizon import tables as horizon_tables
 from horizon.utils import memoized
-
 from openstack_dashboard import api
 from openstack_dashboard.dashboards.admin.images import views as admin_views
 from openstack_dashboard.dashboards.project.images.images import views
diff --git a/tuskar_ui/infrastructure/nodes/forms.py b/tuskar_ui/infrastructure/nodes/forms.py
index c0f15a872..758a95432 100644
--- a/tuskar_ui/infrastructure/nodes/forms.py
+++ b/tuskar_ui/infrastructure/nodes/forms.py
@@ -13,11 +13,12 @@
 #    under the License.
 
 import csv
+
 import django.forms
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
 from horizon import forms
+
 from tuskar_ui import api
 import tuskar_ui.forms
 
diff --git a/tuskar_ui/infrastructure/nodes/panel.py b/tuskar_ui/infrastructure/nodes/panel.py
index 18e3d39bf..124ec3d31 100644
--- a/tuskar_ui/infrastructure/nodes/panel.py
+++ b/tuskar_ui/infrastructure/nodes/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/nodes/tables.py b/tuskar_ui/infrastructure/nodes/tables.py
index e524ff9d1..b98005639 100644
--- a/tuskar_ui/infrastructure/nodes/tables.py
+++ b/tuskar_ui/infrastructure/nodes/tables.py
@@ -14,7 +14,6 @@
 
 from django.core.urlresolvers import reverse
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import tables
 
 from tuskar_ui import api
diff --git a/tuskar_ui/infrastructure/nodes/tabs.py b/tuskar_ui/infrastructure/nodes/tabs.py
index 42a28772b..159026f2c 100644
--- a/tuskar_ui/infrastructure/nodes/tabs.py
+++ b/tuskar_ui/infrastructure/nodes/tabs.py
@@ -14,10 +14,8 @@
 
 from django.core import urlresolvers
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
 from horizon import tabs
-
 from openstack_dashboard.api import base as api_base
 
 from tuskar_ui import api
diff --git a/tuskar_ui/infrastructure/nodes/tests.py b/tuskar_ui/infrastructure/nodes/tests.py
index 73e389957..aff4f5f2b 100644
--- a/tuskar_ui/infrastructure/nodes/tests.py
+++ b/tuskar_ui/infrastructure/nodes/tests.py
@@ -16,12 +16,11 @@ import contextlib
 import json
 
 from django.core import urlresolvers
-
-from mock import patch, call  # noqa
-
 from horizon import exceptions as horizon_exceptions
+from mock import patch, call  # noqa
 from openstack_dashboard.test import helpers
 from openstack_dashboard.test.test_data import utils
+
 from tuskar_ui import api
 from tuskar_ui.handle_errors import handle_errors  # noqa
 from tuskar_ui.test import helpers as test
diff --git a/tuskar_ui/infrastructure/nodes/views.py b/tuskar_ui/infrastructure/nodes/views.py
index ae19bf323..6f80da87c 100644
--- a/tuskar_ui/infrastructure/nodes/views.py
+++ b/tuskar_ui/infrastructure/nodes/views.py
@@ -17,7 +17,6 @@ from django.core.urlresolvers import reverse_lazy
 from django import http
 from django.utils.translation import ugettext_lazy as _
 from django.views.generic import base
-
 from horizon import forms as horizon_forms
 from horizon import tabs as horizon_tabs
 from horizon.utils import memoized
diff --git a/tuskar_ui/infrastructure/overview/panel.py b/tuskar_ui/infrastructure/overview/panel.py
index fb5e303f2..535cd13b7 100644
--- a/tuskar_ui/infrastructure/overview/panel.py
+++ b/tuskar_ui/infrastructure/overview/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/overview/views.py b/tuskar_ui/infrastructure/overview/views.py
index 4113be8ef..6b04d3207 100644
--- a/tuskar_ui/infrastructure/overview/views.py
+++ b/tuskar_ui/infrastructure/overview/views.py
@@ -25,7 +25,9 @@ INDEX_URL = 'horizon:infrastructure:overview:index'
 
 
 def _get_role_data(plan, stack, form, role):
-    """Gathers data about a single deployment role from the related Overcloud
+    """Gathers data about a single deployment role.
+
+    Gathers data about a single deployment role from the related Overcloud
     and Role objects, and presents it in the form convenient for use
     from the template.
 
diff --git a/tuskar_ui/infrastructure/parameters/panel.py b/tuskar_ui/infrastructure/parameters/panel.py
index 1e5d42e91..3c085ae04 100644
--- a/tuskar_ui/infrastructure/parameters/panel.py
+++ b/tuskar_ui/infrastructure/parameters/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/parameters/tables.py b/tuskar_ui/infrastructure/parameters/tables.py
index 49a5d4625..dc1160f37 100644
--- a/tuskar_ui/infrastructure/parameters/tables.py
+++ b/tuskar_ui/infrastructure/parameters/tables.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import tables
 
 
diff --git a/tuskar_ui/infrastructure/parameters/tests.py b/tuskar_ui/infrastructure/parameters/tests.py
index e914d1471..b8b537e37 100644
--- a/tuskar_ui/infrastructure/parameters/tests.py
+++ b/tuskar_ui/infrastructure/parameters/tests.py
@@ -19,6 +19,7 @@ from mock import patch, call  # noqa
 from openstack_dashboard.test.test_data import utils
 
 from tuskar_ui import api
+from tuskar_ui.infrastructure.parameters import views
 from tuskar_ui.test import helpers as test
 from tuskar_ui.test.test_data import tuskar_data
 
@@ -31,8 +32,6 @@ SERVICE_CONFIG_URL = urlresolvers.reverse(
 TEST_DATA = utils.TestDataContainer()
 tuskar_data.data(TEST_DATA)
 
-from tuskar_ui.infrastructure.parameters import views
-
 
 class ParametersTest(test.BaseAdminViewTests):
 
diff --git a/tuskar_ui/infrastructure/parameters/views.py b/tuskar_ui/infrastructure/parameters/views.py
index 97ec029c4..8ee044c7e 100644
--- a/tuskar_ui/infrastructure/parameters/views.py
+++ b/tuskar_ui/infrastructure/parameters/views.py
@@ -41,7 +41,7 @@ class ServiceConfigView(horizon.forms.ModalFormView):
 
         virt_type = plan.parameter_value(
             compute_prefix + 'NovaComputeLibvirtType')
-        #TODO(tzumainn): what if compute and control values are different...
+        # TODO(tzumainn): what if compute and control values are different...
         snmp_password = plan.parameter_value(
             compute_prefix + 'SnmpdReadonlyUserPassword')
 
diff --git a/tuskar_ui/infrastructure/roles/panel.py b/tuskar_ui/infrastructure/roles/panel.py
index 9fc98f096..3a2041f63 100644
--- a/tuskar_ui/infrastructure/roles/panel.py
+++ b/tuskar_ui/infrastructure/roles/panel.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 import horizon
 
 from tuskar_ui.infrastructure import dashboard
diff --git a/tuskar_ui/infrastructure/roles/tables.py b/tuskar_ui/infrastructure/roles/tables.py
index 46ad20993..5d506160c 100644
--- a/tuskar_ui/infrastructure/roles/tables.py
+++ b/tuskar_ui/infrastructure/roles/tables.py
@@ -13,7 +13,6 @@
 #    under the License.
 
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import tables
 
 from tuskar_ui import api
diff --git a/tuskar_ui/infrastructure/roles/tests.py b/tuskar_ui/infrastructure/roles/tests.py
index 278835978..1a2640690 100644
--- a/tuskar_ui/infrastructure/roles/tests.py
+++ b/tuskar_ui/infrastructure/roles/tests.py
@@ -13,11 +13,10 @@
 #    under the License.
 
 import contextlib
+
 from django.core import urlresolvers
-
-from mock import patch, call  # noqa
-
 from openstack_dashboard.test.test_data import utils
+from mock import patch, call  # noqa
 
 from tuskar_ui import api
 from tuskar_ui.test import helpers as test
diff --git a/tuskar_ui/infrastructure/roles/views.py b/tuskar_ui/infrastructure/roles/views.py
index e3cc90841..4324677f3 100644
--- a/tuskar_ui/infrastructure/roles/views.py
+++ b/tuskar_ui/infrastructure/roles/views.py
@@ -18,13 +18,11 @@ from django.core.urlresolvers import reverse_lazy
 from django import http
 from django.utils.translation import ugettext_lazy as _
 from django.views.generic import base
-
 from glanceclient import exc as glance_exc
 from horizon import exceptions as horizon_exceptions
 from horizon import tables as horizon_tables
 from horizon import utils
 from horizon import workflows
-
 from openstack_dashboard.api import base as api_base
 
 from tuskar_ui import api
diff --git a/tuskar_ui/infrastructure/roles/workflows.py b/tuskar_ui/infrastructure/roles/workflows.py
index 028d897e0..7b1101c11 100644
--- a/tuskar_ui/infrastructure/roles/workflows.py
+++ b/tuskar_ui/infrastructure/roles/workflows.py
@@ -13,12 +13,11 @@
 #    under the License.
 from django.core.urlresolvers import reverse_lazy
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
 from horizon import forms
 from horizon import workflows
-
 from openstack_dashboard.api import glance
+
 from tuskar_ui import api
 from tuskar_ui import forms as tuskar_forms
 from tuskar_ui.infrastructure.flavors import utils
diff --git a/tuskar_ui/infrastructure/templatetags/chart_helpers.py b/tuskar_ui/infrastructure/templatetags/chart_helpers.py
index 9766ab605..2a3e0e205 100644
--- a/tuskar_ui/infrastructure/templatetags/chart_helpers.py
+++ b/tuskar_ui/infrastructure/templatetags/chart_helpers.py
@@ -45,9 +45,9 @@ def all_used_instances(obj):
         info['popup_used'] = (
             '<p> {0}% total,'
             ' <strong> {1} instances</strong> of {2}</p>'.format(
-            flavor.used_instances,
-            flavor.used_instances,
-            flavor.name))
+                flavor.used_instances,
+                flavor.used_instances,
+                flavor.name))
         info['used_instances'] = str(flavor.used_instances)
 
         all_used_instances_info.append(info)
diff --git a/tuskar_ui/test/api_tests/heat_tests.py b/tuskar_ui/test/api_tests/heat_tests.py
index a77125071..2f9cf6f6b 100644
--- a/tuskar_ui/test/api_tests/heat_tests.py
+++ b/tuskar_ui/test/api_tests/heat_tests.py
@@ -14,10 +14,9 @@
 from __future__ import absolute_import
 
 from django.utils import unittest
+from heatclient.v1 import events
 import mock
 from mock import patch  # noqa
-
-from heatclient.v1 import events
 from novaclient.v1_1 import servers
 
 from tuskar_ui import api
diff --git a/tuskar_ui/test/formset_table_tests.py b/tuskar_ui/test/formset_table_tests.py
index 63127662b..6e9ea103b 100644
--- a/tuskar_ui/test/formset_table_tests.py
+++ b/tuskar_ui/test/formset_table_tests.py
@@ -12,8 +12,8 @@
 #    under the License.
 
 import django.forms
-
 from horizon import tables
+
 import tuskar_ui.tables
 from tuskar_ui.test import helpers as test
 
diff --git a/tuskar_ui/test/helpers.py b/tuskar_ui/test/helpers.py
index 002a42853..4fc4c0ba4 100644
--- a/tuskar_ui/test/helpers.py
+++ b/tuskar_ui/test/helpers.py
@@ -16,8 +16,8 @@ import warnings
 
 from django.core.handlers import wsgi
 from django.utils import unittest
-
 from openstack_dashboard.test import helpers as openstack_dashboard_helpers
+
 from tuskar_ui.test.test_data import utils as test_data_utils
 
 
@@ -37,8 +37,9 @@ def create_stubs(stubs_to_create={}):
 @unittest.skipIf(os.environ.get('SKIP_UNITTESTS', False),
                  "The SKIP_UNITTESTS env variable is set.")
 class TestCase(openstack_dashboard_helpers.TestCase):
-    """Specialized base test case class for Horizon which gives access to
-    numerous additional features:
+    """Specialized base test case class for Horizon.
+
+    TestCase gives access to numerous additional features:
 
       * A full suite of test data through various attached objects and
         managers (e.g. ``self.servers``, ``self.user``, etc.). See the
@@ -69,8 +70,9 @@ class TestCase(openstack_dashboard_helpers.TestCase):
 
 
 class BaseAdminViewTests(openstack_dashboard_helpers.BaseAdminViewTests):
-    """A ``TestCase`` subclass which sets an active user with the "admin" role
-    for testing admin-only views and functionality.
+    """A ``TestCase`` subclass which sets an active user with the "admin" role.
+
+    This is for testing admin-only views and functionality.
     """
     def setUp(self):
         super(BaseAdminViewTests, self).setUp()
@@ -80,7 +82,9 @@ class BaseAdminViewTests(openstack_dashboard_helpers.BaseAdminViewTests):
 
 
 class APITestCase(openstack_dashboard_helpers.APITestCase):
-    """The ``APITestCase`` class is for use with tests which deal with the
+    """TestCase for testing API clients.
+
+    The ``APITestCase`` class is for use with tests which deal with the
     underlying clients rather than stubbing out the
     openstack_dashboard.api.* methods.
     """
diff --git a/tuskar_ui/test/test_data/exceptions.py b/tuskar_ui/test/test_data/exceptions.py
index 2b56032ad..480189cf3 100644
--- a/tuskar_ui/test/test_data/exceptions.py
+++ b/tuskar_ui/test/test_data/exceptions.py
@@ -12,6 +12,7 @@
 #    under the License.
 
 from openstack_dashboard.test.test_data import exceptions
+
 from tuskarclient.openstack.common.apiclient import exceptions as tuskarclient
 
 
diff --git a/tuskar_ui/test/test_data/flavor_data.py b/tuskar_ui/test/test_data/flavor_data.py
index 59b4a0678..506450dbb 100644
--- a/tuskar_ui/test/test_data/flavor_data.py
+++ b/tuskar_ui/test/test_data/flavor_data.py
@@ -10,9 +10,8 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from openstack_dashboard.test.test_data import utils as test_data_utils
-
 from novaclient.v1_1 import flavors
+from openstack_dashboard.test.test_data import utils as test_data_utils
 
 
 def data(TEST):
diff --git a/tuskar_ui/test/test_data/heat_data.py b/tuskar_ui/test/test_data/heat_data.py
index bcd53488f..c4147e87c 100644
--- a/tuskar_ui/test/test_data/heat_data.py
+++ b/tuskar_ui/test/test_data/heat_data.py
@@ -10,13 +10,12 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from openstack_dashboard.test.test_data import utils as test_data_utils
-
 from glanceclient.v1 import images
 from heatclient.v1 import events
 from heatclient.v1 import resources
 from heatclient.v1 import stacks
 from novaclient.v1_1 import servers
+from openstack_dashboard.test.test_data import utils as test_data_utils
 
 
 def data(TEST):
diff --git a/tuskar_ui/test/test_data/node_data.py b/tuskar_ui/test/test_data/node_data.py
index ef2c80791..bb36a83f4 100644
--- a/tuskar_ui/test/test_data/node_data.py
+++ b/tuskar_ui/test/test_data/node_data.py
@@ -10,11 +10,10 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from openstack_dashboard.test.test_data import utils as test_data_utils
-
 from ironicclient.v1 import node
 from ironicclient.v1 import port
 from novaclient.v1_1.contrib import baremetal
+from openstack_dashboard.test.test_data import utils as test_data_utils
 
 
 def data(TEST):
diff --git a/tuskar_ui/test/test_data/tuskar_data.py b/tuskar_ui/test/test_data/tuskar_data.py
index 5055ad528..eb33138f6 100644
--- a/tuskar_ui/test/test_data/tuskar_data.py
+++ b/tuskar_ui/test/test_data/tuskar_data.py
@@ -11,6 +11,7 @@
 #    under the License.
 
 from openstack_dashboard.test.test_data import utils as test_data_utils
+
 from tuskarclient.v2 import plans
 from tuskarclient.v2 import roles
 
diff --git a/tuskar_ui/test/test_data/utils.py b/tuskar_ui/test/test_data/utils.py
index 267242580..ef61ed0d6 100644
--- a/tuskar_ui/test/test_data/utils.py
+++ b/tuskar_ui/test/test_data/utils.py
@@ -22,6 +22,7 @@ def load_test_data(load_onto=None):
     from openstack_dashboard.test.test_data import neutron_data
     from openstack_dashboard.test.test_data import nova_data
     from openstack_dashboard.test.test_data import swift_data
+
     from tuskar_ui.test.test_data import exceptions
     from tuskar_ui.test.test_data import flavor_data
     from tuskar_ui.test.test_data import heat_data as tuskar_heat_data
diff --git a/tuskar_ui/test/urls.py b/tuskar_ui/test/urls.py
index 4e6e290f7..8f09bbfb3 100644
--- a/tuskar_ui/test/urls.py
+++ b/tuskar_ui/test/urls.py
@@ -13,7 +13,6 @@
 
 from django.conf import urls
 from django.views import generic
-
 import openstack_dashboard.urls
 
 urlpatterns = urls.patterns(
diff --git a/tuskar_ui/utils/metering.py b/tuskar_ui/utils/metering.py
index a766ebe7e..981c93327 100644
--- a/tuskar_ui/utils/metering.py
+++ b/tuskar_ui/utils/metering.py
@@ -12,16 +12,13 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 import copy
-
 from datetime import datetime  # noqa
 from datetime import timedelta  # noqa
 
 from django.utils.http import urlencode
 from django.utils import timezone
 from django.utils.translation import ugettext_lazy as _
-
 from horizon import exceptions
-
 from openstack_dashboard.api import ceilometer
 
 SETTINGS = {
@@ -68,7 +65,7 @@ LABELS = {
 }
 
 
-#TODO(lsmola) this should probably live in Horizon common
+# TODO(lsmola) this should probably live in Horizon common
 def query_data(request,
                date_from,
                date_to,
@@ -117,7 +114,7 @@ def query_data(request,
     return resources, unit
 
 
-#TODO(lsmola) push this function to Horizon common then delete this
+# TODO(lsmola) push this function to Horizon common then delete this
 def _calc_period(date_from, date_to, number_of_samples=400):
     if date_from and date_to:
         if date_to < date_from:
@@ -136,7 +133,7 @@ def _calc_period(date_from, date_to, number_of_samples=400):
     return period
 
 
-#TODO(lsmola) push this function to Horizon common then delete this
+# TODO(lsmola) push this function to Horizon common then delete this
 def _calc_date_args(date_from, date_to, date_options):
     # TODO(lsmola) all timestamps should probably work with
     # current timezone. And also show the current timezone in chart.
@@ -198,8 +195,7 @@ def get_barchart_stats(series, unit):
                         '%(first_date)s, to: %(last_date)s') % (
                             dict(average=average, unit=unit,
                                  first_date=first_date,
-                                 last_date=last_date)
-                        )
+                                 last_date=last_date))
     return average, used, tooltip_average
 
 
diff --git a/tuskar_ui/workflows.py b/tuskar_ui/workflows.py
index b11490c87..90e3ea692 100644
--- a/tuskar_ui/workflows.py
+++ b/tuskar_ui/workflows.py
@@ -15,7 +15,6 @@ import logging
 
 from django import template
 from django.utils import datastructures
-
 import horizon.workflows
 
 
@@ -29,7 +28,9 @@ class WorkflowView(horizon.workflows.WorkflowView):
 
 # FIXME: TableStep
 class TableStep(horizon.workflows.Step):
-    """A :class:`~horizon.workflows.Step` class which knows how to deal with
+    """A Step class with DataTables.
+
+    A :class:`~horizon.workflows.Step` class which knows how to deal with
     :class:`~horizon.tables.DataTable` classes rendered inside of it.
 
     This distinct class is required due to the complexity involved in handling
@@ -63,6 +64,7 @@ class TableStep(horizon.workflows.Step):
 
     def prepare_action_context(self, request, context):
         """Passes the tables to the action for validation and data extraction.
+
         """
         self.load_table_data()
         context['_tables'] = self._tables
@@ -82,7 +84,9 @@ class TableStep(horizon.workflows.Step):
         return step_template.render(context)
 
     def load_table_data(self):
-        """Calls the ``get_{{ table_name }}_data`` methods for each table class
+        """Sets table data.
+
+        Calls the ``get_{{ table_name }}_data`` methods for each table class
         and sets the data on the tables.
         """
         # We only want the data to be loaded once, so we track if we have...
@@ -102,7 +106,9 @@ class TableStep(horizon.workflows.Step):
             self._table_data_loaded = True
 
     def get_context_data(self, request):
-        """Adds a ``{{ table_name }}_table`` item to the context for each table
+        """Gets the table contexct data.
+
+        Adds a ``{{ table_name }}_table`` item to the context for each table
         in the :attr:`~horizon.tabs.TableTab.table_classes` attribute.
 
         If only one table class is provided, a shortcut ``table`` context