diff --git a/designate_tempest_plugin/hacking/checks.py b/designate_tempest_plugin/hacking/checks.py
index 53de95c..bce63ef 100644
--- a/designate_tempest_plugin/hacking/checks.py
+++ b/designate_tempest_plugin/hacking/checks.py
@@ -15,7 +15,6 @@
 import re
 
 from hacking import core
-import pycodestyle
 
 # D701: Default parameter value is a mutable type
 # D702: Log messages require translation
@@ -49,8 +48,8 @@
 
 
 @core.flake8ext
-def mutable_default_arguments(physical_line, logical_line, filename):
-    if pycodestyle.noqa(physical_line):
+def mutable_default_arguments(logical_line, filename, noqa):
+    if noqa:
         return
 
     if mutable_default_argument_check.match(logical_line):
@@ -69,7 +68,7 @@
     N319
     """
     if logical_line.startswith("LOG.debug(_("):
-        yield(0, "D706: Don't translate debug level logs")
+        yield (0, "D706: Don't translate debug level logs")
 
 
 @core.flake8ext
@@ -90,7 +89,7 @@
         UNDERSCORE_IMPORT_FILES.append(filename)
     elif (translated_log.match(logical_line) or
          string_translation.match(logical_line)):
-        yield(0, "D703: Found use of _() without explicit import of _!")
+        yield (0, "D703: Found use of _() without explicit import of _!")
 
 
 @core.flake8ext
@@ -109,8 +108,8 @@
 
     matches = graduated_oslo_libraries_import_re.match(logical_line)
     if matches:
-        yield(0, "D704: Found import of %s. This oslo library has been "
-                 "graduated!" % matches.group(1))
+        yield (0, "D704: Found import of %s. This oslo library has been "
+               "graduated!" % matches.group(1))
 
 
 @core.flake8ext
@@ -133,14 +132,13 @@
     if re.search(r"\bbasestring\b", logical_line):
         msg = ("D707: basestring is not Python3-compatible, use "
                "str instead.")
-        yield(0, msg)
+        yield (0, msg)
 
 
 @core.flake8ext
 def check_python3_xrange(logical_line):
     if re.search(r"\bxrange\s*\(", logical_line):
-        yield(0, "D708: Do not use xrange. Use range for "
-                 "large loops.")
+        yield (0, "D708: Do not use xrange. Use range for large loops.")
 
 
 @core.flake8ext
@@ -152,7 +150,7 @@
     for OpenStack we can enforce not using it.
     """
     if "LOG.audit(" in logical_line:
-        yield(0, "D709: LOG.audit is deprecated, please use LOG.info!")
+        yield (0, "D709: LOG.audit is deprecated, please use LOG.info!")
 
 
 @core.flake8ext
@@ -162,7 +160,7 @@
     D710
     """
     if logical_line.startswith('LOG.warn('):
-        yield(0, "D710:Use LOG.warning() rather than LOG.warn()")
+        yield (0, "D710:Use LOG.warning() rather than LOG.warn()")
 
 
 @core.flake8ext
diff --git a/designate_tempest_plugin/tests/api/v2/test_designate_limits.py b/designate_tempest_plugin/tests/api/v2/test_designate_limits.py
index 638d035..86ca419 100644
--- a/designate_tempest_plugin/tests/api/v2/test_designate_limits.py
+++ b/designate_tempest_plugin/tests/api/v2/test_designate_limits.py
@@ -89,9 +89,8 @@
                  'are {}: '.format(existing_project_ids))
         all_project_limits = self.admin_client.list_designate_limits(
             headers={'x-auth-all-projects': True})
-        LOG.info(
-            'Retrieved designate limits by Admin user for all projects '
-            'are: '.format(all_project_limits))
+        LOG.info('Retrieved designate limits by Admin user for all projects '
+                 'are: %s', all_project_limits)
         received_project_ids = [
             item['project_id'] for item in all_project_limits]
         for project_id in existing_project_ids:
diff --git a/designate_tempest_plugin/tests/api/v2/test_zones_imports.py b/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
index 86cf45e..6fcdae9 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zones_imports.py
@@ -340,8 +340,7 @@
         self.assertIn(
             zone_import['id'], listed_zone_import_ids,
             "Failed, expected import ID:{} wasn't found in "
-            "listed import IDs".format(
-                zone_import['id'], listed_zone_import_ids))
+            "listed import IDs".format(zone_import['id']))
 
         # Test RBAC with x-auth-all-projects
         expected_allowed = ['os_admin']
diff --git a/test-requirements.txt b/test-requirements.txt
index c0a7610..622077f 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -3,4 +3,4 @@
 # process, which may cause wedges in the gate later.
 
 # Hacking already pins down pep8/pycodestyle pyflakes and flake8
-hacking>=3.0.1,<3.1.0 # Apache-2.0
+hacking>=6.1.0,<6.2.0 # Apache-2.0
diff --git a/tools/pretty_flake8.py b/tools/pretty_flake8.py
index 5ae7efd..908dc0a 100755
--- a/tools/pretty_flake8.py
+++ b/tools/pretty_flake8.py
@@ -19,7 +19,7 @@
 from prettytable import PrettyTable
 
 PEP8_LINE = r'^((?P<file>.*):(?P<line>\d*):(?P<col>\d*):) ' \
-            '(?P<error>(?P<error_code>\w\d{1,3})(?P<error_desc>.*$))'
+            r'(?P<error>(?P<error_code>\w\d{1,3})(?P<error_desc>.*$))'
 
 HTML = True
 
diff --git a/tox.ini b/tox.ini
index 7a5148b..4f0539b 100644
--- a/tox.ini
+++ b/tox.ini
@@ -100,8 +100,9 @@
   T108 = tempest.hacking.checks:no_hyphen_at_end_of_rand_name
   N322 = tempest.hacking.checks:no_mutable_default_args
   T109 = tempest.hacking.checks:no_testtools_skip_decorator
-  T110 = tempest.hacking.checks:get_resources_on_service_clients
-  T111 = tempest.hacking.checks:delete_resources_on_service_clients
+# TODO(johnsom) Re-enable these once tempest updates hacking to > 3.1.0
+#  T110 = tempest.hacking.checks:get_resources_on_service_clients
+#  T111 = tempest.hacking.checks:delete_resources_on_service_clients
   T112 = tempest.hacking.checks:dont_import_local_tempest_into_lib
   T113 = tempest.hacking.checks:dont_use_config_in_tempest_lib
   T114 = tempest.hacking.checks:use_rand_uuid_instead_of_uuid4
