diff --git a/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py b/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py
index 159d75e..678eb29 100644
--- a/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py
+++ b/designate_tempest_plugin/tests/api/v2/test_zone_tasks.py
@@ -24,8 +24,8 @@
 from designate_tempest_plugin import data_utils as dns_data_utils
 from designate_tempest_plugin.tests import base
 
-from designate_tempest_plugin.services.dns.query.query_client \
-    import SingleQueryClient
+from designate_tempest_plugin.services.dns.query.query_client import (
+    SingleQueryClient)
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
diff --git a/designate_tempest_plugin/tests/base.py b/designate_tempest_plugin/tests/base.py
index d5cdb6b..24156d8 100644
--- a/designate_tempest_plugin/tests/base.py
+++ b/designate_tempest_plugin/tests/base.py
@@ -15,8 +15,8 @@
 from tempest import config
 from tempest.lib.common.utils import test_utils as utils
 
-from designate_tempest_plugin.services.dns.query.query_client import \
-    QueryClient
+from designate_tempest_plugin.services.dns.query.query_client import (
+    QueryClient)
 from designate_tempest_plugin.tests import rbac_utils
 
 
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_quotas.py b/designate_tempest_plugin/tests/scenario/v2/test_quotas.py
index 9f126a4..2b20db5 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_quotas.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_quotas.py
@@ -92,8 +92,8 @@
     def _reach_quota_limit(
             self, limit_threshold, quota_type, zone=None):
         attempt_number = 0
-        not_raised_msg = "Failed, expected '413 over_quota' response of " \
-                         "type:{} wasn't received.".format(quota_type)
+        not_raised_msg = ("Failed, expected '413 over_quota' response of "
+                          "type:{} wasn't received.".format(quota_type))
         while attempt_number <= limit_threshold + 1:
             try:
                 attempt_number += 1
@@ -136,8 +136,8 @@
                 raised_err = str(e).replace(' ', '')
                 if not_raised_msg in str(e):
                     raise AssertionError(not_raised_msg)
-                elif "'code':413" in raised_err and \
-                        "'type':'over_quota'" in raised_err:
+                elif ("'code':413" in raised_err and
+                      "'type':'over_quota'" in raised_err):
                     LOG.info("OK, type':'over_quota' was raised")
                     break
                 else:
@@ -309,10 +309,9 @@
             cls.quota_client = cls.os_system_admin.dns_v2.QuotasClient()
             cls.project_client = cls.os_system_admin.projects_client
             cls.zone_client = cls.os_system_admin.dns_v2.ZonesClient()
-            cls.recordset_client = \
-                cls.os_system_admin.dns_v2.RecordsetClient()
-            cls.export_zone_client = \
-                cls.os_system_admin.dns_v2.ZoneExportsClient()
+            cls.recordset_client = cls.os_system_admin.dns_v2.RecordsetClient()
+            cls.export_zone_client = (
+                cls.os_system_admin.dns_v2.ZoneExportsClient())
         else:
             cls.quota_client = cls.os_admin.dns_v2.QuotasClient()
             cls.project_client = cls.os_admin.projects_client
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py b/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
index 029854a..dcdf0b0 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_recordsets.py
@@ -23,8 +23,8 @@
 from designate_tempest_plugin.common import constants as const
 from designate_tempest_plugin import data_utils as dns_data_utils
 from designate_tempest_plugin.common import waiters
-from designate_tempest_plugin.services.dns.query.query_client \
-    import SingleQueryClient
+from designate_tempest_plugin.services.dns.query.query_client import (
+    SingleQueryClient)
 
 LOG = logging.getLogger(__name__)
 
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones.py b/designate_tempest_plugin/tests/scenario/v2/test_zones.py
index 4e9affc..f305094 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones.py
@@ -25,8 +25,8 @@
 from designate_tempest_plugin.tests import base
 from designate_tempest_plugin.common import constants as const
 from designate_tempest_plugin.common import waiters
-from designate_tempest_plugin.services.dns.query.query_client \
-    import SingleQueryClient
+from designate_tempest_plugin.services.dns.query.query_client import (
+    SingleQueryClient)
 
 CONF = config.CONF
 
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
index 565461d..67e5f32 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_export.py
@@ -22,8 +22,8 @@
 from designate_tempest_plugin.common import constants as const
 from designate_tempest_plugin.common import waiters
 from designate_tempest_plugin import data_utils as dns_data_utils
-from designate_tempest_plugin.tests.api.v2.test_zones_exports import \
-    BaseZoneExportsTest
+from designate_tempest_plugin.tests.api.v2.test_zones_exports import (
+    BaseZoneExportsTest)
 
 CONF = config.CONF
 LOG = logging.getLogger(__name__)
diff --git a/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py b/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
index 7286f23..2142158 100644
--- a/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
+++ b/designate_tempest_plugin/tests/scenario/v2/test_zones_import.py
@@ -17,8 +17,8 @@
 from designate_tempest_plugin.common import constants as const
 from designate_tempest_plugin.common import waiters
 from designate_tempest_plugin import data_utils as dns_data_utils
-from designate_tempest_plugin.tests.api.v2.test_zones_imports import \
-    BaseZonesImportTest
+from designate_tempest_plugin.tests.api.v2.test_zones_imports import (
+    BaseZonesImportTest)
 
 LOG = logging.getLogger(__name__)
 
