diff --git a/neutron_tempest_plugin/api/test_security_groups.py b/neutron_tempest_plugin/api/test_security_groups.py
index 6992399..37cd80b 100644
--- a/neutron_tempest_plugin/api/test_security_groups.py
+++ b/neutron_tempest_plugin/api/test_security_groups.py
@@ -386,7 +386,7 @@
         self.admin_client.update_quotas(project_id,
                                         **{'security_group_rule': val,
                                            'force': True})
-        LOG.info('Trying to update security group rule quota {} '.format(val))
+        LOG.info('Trying to update security group rule quota %r', val)
 
     def _get_sg_rules_quota(self):
         project_id = self.client.project_id
diff --git a/neutron_tempest_plugin/common/utils.py b/neutron_tempest_plugin/common/utils.py
index 6bc290b..62191bf 100644
--- a/neutron_tempest_plugin/common/utils.py
+++ b/neutron_tempest_plugin/common/utils.py
@@ -194,29 +194,29 @@
                         sleep=self.test_sleep)
         try:
             LOG.info("Checking connectivity between server and client -"
-                    " attempt {}".format(self.test_attempt))
+                    " attempt %d", self.test_attempt)
             self.server_ssh.exec_command(
                     'grep {} output.txt'.format(self.test_str))
             self.client_ssh.exec_command(
                     'grep {} output.txt'.format(self.test_str))
             if not self.should_pass:
-                LOG.warning("attempt {} succeed while it should fail".format(
-                    self.test_attempt))
+                LOG.warning("attempt %d succeed while it should fail",
+                            self.test_attempt)
                 return False
             else:
                 if not self.connection_started:
                     self.connection_started = True
-                LOG.info("attempt {} succeed as it expected".format(
-                    self.test_attempt))
+                LOG.info("attempt %d succeed as it expected",
+                         self.test_attempt)
                 return True
         except exceptions.SSHExecCommandFailed:
             if self.should_pass:
-                LOG.warning("attempt {} failed while it should pass".format(
-                    self.test_attempt))
+                LOG.warning("attempt %d failed while it should pass",
+                            self.test_attempt)
                 return False
             else:
-                LOG.info("attempt {} failed as it expected".format(
-                    self.test_attempt))
+                LOG.info("attempt %d failed as it expected",
+                         self.test_attempt)
                 return True
         finally:
             self.test_attempt += 1
diff --git a/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py b/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
index 9896073..8468671 100644
--- a/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
+++ b/neutron_tempest_plugin/fwaas/scenario/test_fwaas_v2.py
@@ -89,9 +89,9 @@
                                 (ssh_source, remote_ip, should_connect),
                                 msg)
             except Exception:
-                LOG.exception("Unable to access {dest} via ssh to "
-                              "floating-ip {src}".format(dest=remote_ip,
-                                                         src=floating_ip))
+                LOG.exception("Unable to access %s via ssh to "
+                              "floating-ip %s",
+                              remote_ip, floating_ip)
                 raise
 
     def _check_remote_connectivity(self, source, dest, should_succeed=True,
diff --git a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
index 5cdd524..1d089f6 100644
--- a/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
+++ b/neutron_tempest_plugin/neutron_dynamic_routing/api/test_bgp_speaker_extensions.py
@@ -177,7 +177,7 @@
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         bgp_peers_list = bgp_speaker['peers']
         self.assertEqual(1, len(bgp_peers_list))
-        self.assertTrue(bgp_peer_id in bgp_peers_list)
+        self.assertIn(bgp_peer_id, bgp_peers_list)
 
     @decorators.idempotent_id('f9737708-1d79-440b-8350-779f97d882ee')
     def test_remove_bgp_peer(self):
@@ -188,7 +188,7 @@
         self.add_bgp_peer(bgp_speaker_id, bgp_peer_id)
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         bgp_peers_list = bgp_speaker['peers']
-        self.assertTrue(bgp_peer_id in bgp_peers_list)
+        self.assertIn(bgp_peer_id, bgp_peers_list)
 
         bgp_speaker = self.remove_bgp_peer(bgp_speaker_id, bgp_peer_id)
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
@@ -206,7 +206,7 @@
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         network_list = bgp_speaker['networks']
         self.assertEqual(1, len(network_list))
-        self.assertTrue(self.ext_net_id in network_list)
+        self.assertIn(self.ext_net_id, network_list)
 
     @decorators.idempotent_id('6cfc7137-0d99-4a3d-826c-9d1a3a1767b0')
     def test_remove_gateway_network(self):
@@ -218,7 +218,7 @@
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
         networks = bgp_speaker['networks']
 
-        self.assertTrue(self.ext_net_id in networks)
+        self.assertIn(self.ext_net_id, networks)
         self.bgp_adm_client.remove_bgp_gateway_network(bgp_speaker_id,
                                                        self.ext_net_id)
         bgp_speaker = self.get_bgp_speaker(bgp_speaker_id)
diff --git a/neutron_tempest_plugin/scenario/test_mtu.py b/neutron_tempest_plugin/scenario/test_mtu.py
index 99c5130..29ccb01 100644
--- a/neutron_tempest_plugin/scenario/test_mtu.py
+++ b/neutron_tempest_plugin/scenario/test_mtu.py
@@ -227,37 +227,37 @@
     @decorators.idempotent_id('bc470200-d8f4-4f07-b294-1b4cbaaa35b9')
     def test_connectivity_min_max_mtu(self):
         server_ssh_client, _, _, fip2 = self._create_setup()
-        log_msg = ("Ping with {mtu_size} MTU of 2 networks. Fragmentation is "
-                   "{fragmentation_state}. Expected result: ping "
-                   "{ping_status}")
+        log_msg = ("Ping with %(mtu_size)s MTU of 2 networks. "
+                   "Fragmentation is %(fragmentation_state)s. "
+                   "Expected result: ping %(ping_status)s")
 
         # ping with min mtu of 2 networks succeeds even when
         # fragmentation is disabled
-        LOG.debug(log_msg.format(mtu_size='minimal',
-                  fragmentation_state='disabled', ping_status='succeeded'))
+        LOG.debug(log_msg, mtu_size='minimal',
+                  fragmentation_state='disabled', ping_status='succeeded')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'],
             mtu=self.networks[0]['mtu'], fragmentation=False)
 
         # ping with the size above min mtu of 2 networks
         # fails when fragmentation is disabled
-        LOG.debug(log_msg.format(mtu_size='size above minimal',
-                  fragmentation_state='disabled', ping_status='failed'))
+        LOG.debug(log_msg, mtu_size='size above minimal',
+                  fragmentation_state='disabled', ping_status='failed')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'], should_succeed=False,
             mtu=self.networks[0]['mtu'] + 2, fragmentation=False)
 
         # ping with max mtu of 2 networks succeeds when
         # fragmentation is enabled
-        LOG.debug(log_msg.format(mtu_size='maximal',
-                  fragmentation_state='enabled', ping_status='succeeded'))
+        LOG.debug(log_msg, mtu_size='maximal',
+                  fragmentation_state='enabled', ping_status='succeeded')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'],
             mtu=self.networks[1]['mtu'])
 
         # ping with max mtu of 2 networks fails when fragmentation is disabled
-        LOG.debug(log_msg.format(mtu_size='maximal',
-                  fragmentation_state='disabled', ping_status='failed'))
+        LOG.debug(log_msg, mtu_size='maximal',
+                  fragmentation_state='disabled', ping_status='failed')
         self.check_remote_connectivity(
             server_ssh_client, fip2['fixed_ip_address'], should_succeed=False,
             mtu=self.networks[1]['mtu'], fragmentation=False)
diff --git a/neutron_tempest_plugin/scenario/test_ports.py b/neutron_tempest_plugin/scenario/test_ports.py
index c661d39..56cedde 100644
--- a/neutron_tempest_plugin/scenario/test_ports.py
+++ b/neutron_tempest_plugin/scenario/test_ports.py
@@ -107,8 +107,8 @@
                 if port is not None:
                     break
             except Exception as e:
-                LOG.warning('Failed to create Port, using Fixed_IP:{}, '
-                            'the Error was:{}'.format(ip, e))
+                LOG.warning('Failed to create Port, using Fixed_IP:%s, '
+                            'the Error was:%s', ip, e)
         fip, server = self._create_instance_with_port(port)
         self.check_connectivity(fip[0]['floating_ip_address'],
                                 CONF.validation.image_ssh_user,
diff --git a/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py b/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
index e70eb03..904335d 100644
--- a/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
+++ b/neutron_tempest_plugin/tap_as_a_service/scenario/test_traffic_impact.py
@@ -14,16 +14,15 @@
 #    under the License.
 
 from contextlib import contextmanager
-from oslo_log import log
-import testtools
 
+from oslo_log import log
 from tempest.common import utils
 from tempest import config
 from tempest.lib.common.utils import data_utils
 from tempest.lib.common.utils.linux import remote_client
 from tempest.lib.common.utils import test_utils
-
 from tempest.lib import decorators
+import testtools
 
 from neutron_tempest_plugin.tap_as_a_service.scenario import manager
 
@@ -151,7 +150,7 @@
 
         # Ensure tcpdump is up and running
         psax = self.monitor_client.exec_command("ps -ax")
-        self.assertTrue("tcpdump" in psax)
+        self.assertIn("tcpdump", psax)
 
         # Run traffic from left_vm to right_vm
         LOG.debug('Check ICMP traffic: ping %s ', right_ip)
diff --git a/test-requirements.txt b/test-requirements.txt
index 0151f21..ebde755 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,7 +1,7 @@
-hacking>=3.2.0,<3.3.0 # Apache-2.0
+hacking>=6.1.0,<6.2.0 # Apache-2.0
 
 coverage>=4.4.1 # Apache-2.0
-flake8-import-order==0.12 # LGPLv3
+flake8-import-order>=0.18.0,<0.19.0 # LGPLv3
 python-subunit>=1.0.0 # Apache-2.0/BSD
 oslotest>=3.2.0 # Apache-2.0
 stestr>=1.0.0 # Apache-2.0
diff --git a/tox.ini b/tox.ini
index 2f7da5c..c8add2c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -62,9 +62,10 @@
 # E126 continuation line over-indented for hanging indent
 # E128 continuation line under-indented for visual indent
 # E129 visually indented line with same indent as next logical line
+# I202 Additional newline in a group of imports.
 # N530 direct neutron imports not allowed
 # W504 line break after binary operator
-ignore = E126,E128,E129,N530,W504
+ignore = E126,E128,E129,I202,N530,W504
 # H106: Don't put vim configuration in source files
 # H203: Use assertIs(Not)None to check for None
 # H204: Use assert(Not)Equal to check for equality
diff --git a/zuul.d/master_jobs.yaml b/zuul.d/master_jobs.yaml
index 01dada3..9f07d79 100644
--- a/zuul.d/master_jobs.yaml
+++ b/zuul.d/master_jobs.yaml
@@ -1086,6 +1086,7 @@
       - ^neutron/scheduler/.*$
       - ^neutron/services/.*$
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
       - ^neutron_tempest_plugin/services/bgp/.*$
       - ^rally-jobs/.*$
@@ -1192,6 +1193,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|tap_as_a_service|vpnaas).*$
@@ -1272,6 +1274,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(fwaas|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
@@ -1339,6 +1342,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|sfc|tap_as_a_service|vpnaas).*$
@@ -1414,6 +1418,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|neutron_dynamic_routing|sfc|tap_as_a_service|vpnaas).*$
@@ -1495,6 +1500,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
@@ -1566,6 +1572,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|tap_as_a_service).*$
@@ -1687,6 +1694,7 @@
       - ^neutron/tests/fullstack/.*
       - ^neutron/tests/functional/.*
       - ^neutron_tempest_plugin/api/test_.*$
+      - ^neutron_tempest_plugin/api/admin/test_.*$
       - ^neutron_tempest_plugin/scenario/admin/.*$
       - ^neutron_tempest_plugin/scenario/test_.*$
       - ^neutron_tempest_plugin/(bgpvpn|fwaas|neutron_dynamic_routing|sfc|vpnaas).*$
