Update hacking

This patch updates the version of hacking to be consistent with octavia.
It is also required for flake8 to understand f-strings correctly.
Along with this version update, the patch fixes issues in the code found
by the new versions.

This patch also removes O349 check for importing mock since flake8 has
added H216 which does the same check.

Change-Id: I8e49fc19faff59b2811a7ee09b7ccaa286f73d82
diff --git a/octavia_tempest_plugin/common/barbican_client_mgr.py b/octavia_tempest_plugin/common/barbican_client_mgr.py
index eba1715..3bd2807 100644
--- a/octavia_tempest_plugin/common/barbican_client_mgr.py
+++ b/octavia_tempest_plugin/common/barbican_client_mgr.py
@@ -73,7 +73,7 @@
         p12_secret.name = data_utils.rand_name("lb_member_barbican")
         p12_secret.payload = secret
         secret_ref = p12_secret.store()
-        LOG.debug('Secret {0} has ref {1}'.format(p12_secret.name, secret_ref))
+        LOG.debug('Secret %s has ref %s', p12_secret.name, secret_ref)
         return secret_ref
 
     def delete_secret(self, secret_ref):
@@ -84,5 +84,5 @@
                                                users=[user_id],
                                                project_access=True)
         acl_ref = acl_entity.submit()
-        LOG.debug('Secret ACL {0} added user {1}'.format(acl_ref, user_id))
+        LOG.debug('Secret ACL %s added user %s', acl_ref, user_id)
         return acl_ref
diff --git a/octavia_tempest_plugin/hacking/checks.py b/octavia_tempest_plugin/hacking/checks.py
index eec7476..7008994 100644
--- a/octavia_tempest_plugin/hacking/checks.py
+++ b/octavia_tempest_plugin/hacking/checks.py
@@ -66,8 +66,6 @@
 no_eventlet_re = re.compile(r'(import|from)\s+[(]?eventlet')
 no_line_continuation_backslash_re = re.compile(r'.*(\\)\n')
 no_logging_re = re.compile(r'(import|from)\s+[(]?logging')
-import_mock_re = re.compile(r"\bimport[\s]+mock\b")
-import_from_mock_re = re.compile(r"\bfrom[\s]+mock[\s]+import\b")
 
 
 def _translation_checks_not_enforced(filename):
@@ -147,7 +145,7 @@
     O339
     """
     if logical_line.startswith('LOG.warn('):
-        yield(0, "O339:Use LOG.warning() rather than LOG.warn()")
+        yield (0, "O339:Use LOG.warning() rather than LOG.warn()")
 
 
 @core.flake8ext
@@ -260,18 +258,3 @@
     if no_logging_re.match(logical_line):
         msg = 'O348 Usage of Python logging module not allowed, use oslo_log'
         yield logical_line.index('logging'), msg
-
-
-@core.flake8ext
-def check_no_import_mock(logical_line):
-    """O349 - Test code must not import mock library.
-
-    :param logical_line: The logical line to check.
-    :returns: None if the logical line passes the check, otherwise a tuple
-              is yielded that contains the offending index in logical line
-              and a message describe the check validation failure.
-    """
-    if (import_mock_re.match(logical_line) or
-            import_from_mock_re.match(logical_line)):
-        msg = 'O349 Test code must not import mock library, use unittest.mock'
-        yield 0, msg
diff --git a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py
index e3f6338..66cb59b 100644
--- a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py
+++ b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby.py
@@ -69,7 +69,7 @@
                 floating_network_id=CONF.network.public_network_id,
                 port_id=port_id)
             floating_ip = result['floatingip']
-            LOG.info('lb1_floating_ip: {}'.format(floating_ip))
+            LOG.info('lb1_floating_ip: %s', floating_ip)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls.lb_mem_float_ip_client.delete_floatingip,
diff --git a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py
index e7dccb6..ce2c94f 100644
--- a/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py
+++ b/octavia_tempest_plugin/tests/act_stdby_scenario/v2/test_active_standby_iptables.py
@@ -76,7 +76,7 @@
                 floating_network_id=CONF.network.public_network_id,
                 port_id=port_id)
             floating_ip = result['floatingip']
-            LOG.info('lb1_floating_ip: {}'.format(floating_ip))
+            LOG.info('lb1_floating_ip: %s', floating_ip)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls.lb_mem_float_ip_client.delete_floatingip,
diff --git a/octavia_tempest_plugin/tests/api/v2/test_listener.py b/octavia_tempest_plugin/tests/api/v2/test_listener.py
index cd320f4..06a6848 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_listener.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_listener.py
@@ -568,8 +568,8 @@
                 fs = e.resp_body.get('faultstring', '')
                 if ("Invalid input for field/attribute protocol." in fs
                         and "Value should be one of:" in fs):
-                    LOG.info("Skipping unsupported protocol: {}".format(
-                        listener_kwargs[const.PROTOCOL]))
+                    LOG.info("Skipping unsupported protocol: %s",
+                             listener_kwargs[const.PROTOCOL])
                 else:
                     raise e
             else:
@@ -598,8 +598,8 @@
                 fs = e.resp_body.get('faultstring', '')
                 if ("Invalid input for field/attribute protocol." in fs
                         and "Value should be one of:" in fs):
-                    LOG.info("Skipping unsupported protocol: {}".format(
-                        listener_kwargs[const.PROTOCOL]))
+                    LOG.info("Skipping unsupported protocol: %s",
+                             listener_kwargs[const.PROTOCOL])
                 else:
                     raise e
             else:
@@ -646,8 +646,8 @@
                 fs = e.resp_body.get('faultstring', '')
                 if ("Invalid input for field/attribute protocol." in fs
                         and "Value should be one of:" in fs):
-                    LOG.info("Skipping unsupported protocol: {}".format(
-                        listener_kwargs[const.PROTOCOL]))
+                    LOG.info("Skipping unsupported protocol: %s",
+                             listener_kwargs[const.PROTOCOL])
                 else:
                     raise e
             else:
diff --git a/octavia_tempest_plugin/tests/api/v2/test_member.py b/octavia_tempest_plugin/tests/api/v2/test_member.py
index 1e18af3..ed3fba6 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_member.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_member.py
@@ -29,6 +29,7 @@
 
 CONF = config.CONF
 
+
 # Member port numbers need to be unique on the shared pools so generate them
 @misc.singleton
 class MemberPort(object):
diff --git a/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py b/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py
index 3c92181..62be835 100644
--- a/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py
+++ b/octavia_tempest_plugin/tests/barbican_scenario/v2/test_tls_barbican.py
@@ -220,7 +220,7 @@
                 floating_network_id=CONF.network.public_network_id,
                 port_id=port_id)
             floating_ip = result['floatingip']
-            LOG.info('lb1_floating_ip: {}'.format(floating_ip))
+            LOG.info('lb1_floating_ip: %s', floating_ip)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls.lb_mem_float_ip_client.delete_floatingip,
@@ -349,9 +349,9 @@
                 # Make sure the certificate is the one we generated
                 self.assertEqual(expected_cn, received_cn, message=msg)
             else:
-                LOG.error('Certificate with CN: {0} failed validation with '
-                          'OpenSSL verify errno {1}'.format(
-                              x509.get_subject().commonName, errno))
+                LOG.error('Certificate with CN: %s failed validation with '
+                          'OpenSSL verify errno %s',
+                          x509.get_subject().commonName, errno)
                 return False
             return True
 
@@ -487,9 +487,9 @@
                 # Make sure the certificate is the one we generated
                 self.assertEqual(expected_cn, received_cn, message=msg)
             else:
-                LOG.error('Certificate with CN: {0} failed validation with '
-                          'OpenSSL verify errno {1}'.format(
-                              x509.get_subject().commonName, errno))
+                LOG.error('Certificate with CN: %s failed validation with '
+                          'OpenSSL verify errno %s',
+                          x509.get_subject().commonName, errno)
                 return False
             return True
 
@@ -660,9 +660,9 @@
                 # Make sure the certificate is the one we generated
                 self.assertEqual(expected_cn, received_cn, message=msg)
             else:
-                LOG.error('Certificate with CN: {0} failed validation with '
-                          'OpenSSL verify errno {1}'.format(
-                              x509.get_subject().commonName, errno))
+                LOG.error('Certificate with CN: %s failed validation with '
+                          'OpenSSL verify errno %s',
+                          x509.get_subject().commonName, errno)
                 return False
             return True
 
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
index 0083887..db92352 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_traffic_ops.py
@@ -79,7 +79,7 @@
                 floating_network_id=CONF.network.public_network_id,
                 port_id=port_id)
             floating_ip = result['floatingip']
-            LOG.info('lb1_floating_ip: {}'.format(floating_ip))
+            LOG.info('lb1_floating_ip: %s', floating_ip)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls.lb_mem_float_ip_client.delete_floatingip,
@@ -1351,7 +1351,7 @@
         test_url = 'http://{}:{}/request'.format(
             self.lb_vip_address, listener_port)
         data = self.validate_URL_response(test_url)
-        LOG.info('Received payload is: {}'.format(data))
+        LOG.info('Received payload is: %s', data)
 
         # Detect source IP that is used to create TCP socket toward LB_VIP.
         try:
@@ -1398,7 +1398,7 @@
 
         # Initiate HTTP traffic
         data = self.validate_URL_response(test_url)
-        LOG.info('Received payload is: {}'.format(data))
+        LOG.info('Received payload is: %s', data)
         expected_headers = {const.X_FORWARDED_PORT: '{}'.format(
             listener_port), const.X_FORWARDED_PROTO: const.HTTP.lower()}
         received_headers = _data_parser(data, expected_headers)
@@ -1550,7 +1550,7 @@
         # For each test case, update HM and validate that members'
         # "Operation Status" is changed to expected value.
         for ff in flip_flop:
-            LOG.info('Tested test case is: {}'.format(ff))
+            LOG.info('Tested test case is: %s', ff)
             self.mem_healthmonitor_client.update_healthmonitor(
                 hm_id, expected_codes=ff['code'], http_method=ff['mthd'],
                 url_path=ff['url_path'])
diff --git a/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py b/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py
index 0ccfe55..26866c3 100644
--- a/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py
+++ b/octavia_tempest_plugin/tests/spare_pool_scenario/v2/test_spare_pool.py
@@ -82,7 +82,7 @@
                 floating_network_id=CONF.network.public_network_id,
                 port_id=port_id)
             floating_ip = result['floatingip']
-            LOG.info('lb1_floating_ip: {}'.format(floating_ip))
+            LOG.info('lb1_floating_ip: %s', floating_ip)
             self.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 self.lb_mem_float_ip_client.delete_floatingip,
diff --git a/octavia_tempest_plugin/tests/test_base.py b/octavia_tempest_plugin/tests/test_base.py
index a04f1cb..7f4ae3e 100644
--- a/octavia_tempest_plugin/tests/test_base.py
+++ b/octavia_tempest_plugin/tests/test_base.py
@@ -364,31 +364,31 @@
         else:
             cls._create_networks()
 
-        LOG.debug('Octavia Setup: lb_member_vip_net = {}'.format(
-            cls.lb_member_vip_net[const.ID]))
+        LOG.debug('Octavia Setup: lb_member_vip_net = %s',
+                  cls.lb_member_vip_net[const.ID])
         if cls.lb_member_vip_subnet:
-            LOG.debug('Octavia Setup: lb_member_vip_subnet = {}'.format(
-                cls.lb_member_vip_subnet[const.ID]))
-        LOG.debug('Octavia Setup: lb_member_1_net = {}'.format(
-            cls.lb_member_1_net[const.ID]))
+            LOG.debug('Octavia Setup: lb_member_vip_subnet = %s',
+                      cls.lb_member_vip_subnet[const.ID])
+        LOG.debug('Octavia Setup: lb_member_1_net = %s',
+                  cls.lb_member_1_net[const.ID])
         if cls.lb_member_1_subnet:
-            LOG.debug('Octavia Setup: lb_member_1_subnet = {}'.format(
-                cls.lb_member_1_subnet[const.ID]))
-        LOG.debug('Octavia Setup: lb_member_2_net = {}'.format(
-            cls.lb_member_2_net[const.ID]))
+            LOG.debug('Octavia Setup: lb_member_1_subnet = %s',
+                      cls.lb_member_1_subnet[const.ID])
+        LOG.debug('Octavia Setup: lb_member_2_net = %s',
+                  cls.lb_member_2_net[const.ID])
         if cls.lb_member_2_subnet:
-            LOG.debug('Octavia Setup: lb_member_2_subnet = {}'.format(
-                cls.lb_member_2_subnet[const.ID]))
+            LOG.debug('Octavia Setup: lb_member_2_subnet = %s',
+                      cls.lb_member_2_subnet[const.ID])
         if CONF.load_balancer.test_with_ipv6:
             if cls.lb_member_vip_ipv6_subnet:
-                LOG.debug('Octavia Setup: lb_member_vip_ipv6_subnet = '
-                          '{}'.format(cls.lb_member_vip_ipv6_subnet[const.ID]))
+                LOG.debug('Octavia Setup: lb_member_vip_ipv6_subnet = %s',
+                          cls.lb_member_vip_ipv6_subnet[const.ID])
             if cls.lb_member_1_ipv6_subnet:
-                LOG.debug('Octavia Setup: lb_member_1_ipv6_subnet = {}'.format(
-                    cls.lb_member_1_ipv6_subnet[const.ID]))
+                LOG.debug('Octavia Setup: lb_member_1_ipv6_subnet = %s',
+                          cls.lb_member_1_ipv6_subnet[const.ID])
             if cls.lb_member_2_ipv6_subnet:
-                LOG.debug('Octavia Setup: lb_member_2_ipv6_subnet = {}'.format(
-                    cls.lb_member_2_ipv6_subnet[const.ID]))
+                LOG.debug('Octavia Setup: lb_member_2_ipv6_subnet = %s',
+                          cls.lb_member_2_ipv6_subnet[const.ID])
 
     @classmethod
     # Neutron can be slow to clean up ports from the subnets/networks.
@@ -403,8 +403,7 @@
         try:
             cls.lb_mem_net_client.delete_network(net_id)
         except Exception:
-            LOG.error('Unable to delete network {}. Active ports:'.format(
-                net_id))
+            LOG.error('Unable to delete network %s. Active ports:', net_id)
             LOG.error(cls.lb_mem_ports_client.list_ports())
             raise
 
@@ -421,8 +420,7 @@
         try:
             cls.lb_mem_subnet_client.delete_subnet(subnet_id)
         except Exception:
-            LOG.error('Unable to delete subnet {}. Active ports:'.format(
-                subnet_id))
+            LOG.error('Unable to delete subnet %s. Active ports:', subnet_id)
             LOG.error(cls.lb_mem_ports_client.list_ports())
             raise
 
@@ -450,7 +448,7 @@
             network_kwargs['port_security_enabled'] = True
         result = cls.lb_mem_net_client.create_network(**network_kwargs)
         cls.lb_member_vip_net = result['network']
-        LOG.info('lb_member_vip_net: {}'.format(cls.lb_member_vip_net))
+        LOG.info('lb_member_vip_net: %s', cls.lb_member_vip_net)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls._logging_delete_network,
@@ -465,7 +463,7 @@
             'ip_version': 4}
         result = cls.lb_mem_subnet_client.create_subnet(**subnet_kwargs)
         cls.lb_member_vip_subnet = result['subnet']
-        LOG.info('lb_member_vip_subnet: {}'.format(cls.lb_member_vip_subnet))
+        LOG.info('lb_member_vip_subnet: %s', cls.lb_member_vip_subnet)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls._logging_delete_subnet,
@@ -507,8 +505,8 @@
                 cls.lb_mem_subnet_client.show_subnet,
                 cls.lb_member_vip_ipv6_subnet['id'])
 
-            LOG.info('lb_member_vip_ipv6_subnet: {}'.format(
-                cls.lb_member_vip_ipv6_subnet))
+            LOG.info('lb_member_vip_ipv6_subnet: %s',
+                     cls.lb_member_vip_ipv6_subnet)
 
         # Create tenant member 1 network
         network_kwargs = {
@@ -520,7 +518,7 @@
                 network_kwargs['port_security_enabled'] = False
         result = cls.lb_mem_net_client.create_network(**network_kwargs)
         cls.lb_member_1_net = result['network']
-        LOG.info('lb_member_1_net: {}'.format(cls.lb_member_1_net))
+        LOG.info('lb_member_1_net: %s', cls.lb_member_1_net)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls._logging_delete_network,
@@ -535,7 +533,7 @@
             'ip_version': 4}
         result = cls.lb_mem_subnet_client.create_subnet(**subnet_kwargs)
         cls.lb_member_1_subnet = result['subnet']
-        LOG.info('lb_member_1_subnet: {}'.format(cls.lb_member_1_subnet))
+        LOG.info('lb_member_1_subnet: %s', cls.lb_member_1_subnet)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls._logging_delete_subnet,
@@ -553,10 +551,10 @@
             cls.lb_member_1_subnet_prefix = (
                 CONF.load_balancer.member_1_ipv6_subnet_cidr.rpartition('/')[2]
                 )
-            assert(cls.lb_member_1_subnet_prefix.isdigit())
+            assert (cls.lb_member_1_subnet_prefix.isdigit())
             cls.lb_member_1_ipv6_subnet = result['subnet']
-            LOG.info('lb_member_1_ipv6_subnet: {}'.format(
-                cls.lb_member_1_ipv6_subnet))
+            LOG.info('lb_member_1_ipv6_subnet: %s',
+                     cls.lb_member_1_ipv6_subnet)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls._logging_delete_subnet,
@@ -573,7 +571,7 @@
                 network_kwargs['port_security_enabled'] = False
         result = cls.lb_mem_net_client.create_network(**network_kwargs)
         cls.lb_member_2_net = result['network']
-        LOG.info('lb_member_2_net: {}'.format(cls.lb_member_2_net))
+        LOG.info('lb_member_2_net: %s', cls.lb_member_2_net)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls._logging_delete_network,
@@ -588,7 +586,7 @@
             'ip_version': 4}
         result = cls.lb_mem_subnet_client.create_subnet(**subnet_kwargs)
         cls.lb_member_2_subnet = result['subnet']
-        LOG.info('lb_member_2_subnet: {}'.format(cls.lb_member_2_subnet))
+        LOG.info('lb_member_2_subnet: %s', cls.lb_member_2_subnet)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls._logging_delete_subnet,
@@ -606,10 +604,10 @@
             cls.lb_member_2_subnet_prefix = (
                 CONF.load_balancer.member_2_ipv6_subnet_cidr.rpartition('/')[2]
                 )
-            assert(cls.lb_member_2_subnet_prefix.isdigit())
+            assert (cls.lb_member_2_subnet_prefix.isdigit())
             cls.lb_member_2_ipv6_subnet = result['subnet']
-            LOG.info('lb_member_2_ipv6_subnet: {}'.format(
-                cls.lb_member_2_ipv6_subnet))
+            LOG.info('lb_member_2_ipv6_subnet: %s',
+                     cls.lb_member_2_ipv6_subnet)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls._logging_delete_subnet,
@@ -696,7 +694,7 @@
         result = cls.lb_mem_keypairs_client.create_keypair(
             name=keypair_name)
         cls.lb_member_keypair = result['keypair']
-        LOG.info('lb_member_keypair: {}'.format(cls.lb_member_keypair))
+        LOG.info('lb_member_keypair: %s', cls.lb_member_keypair)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls.lb_mem_keypairs_client.delete_keypair,
@@ -866,7 +864,7 @@
                     cls.lb_mem_SGr_client.show_security_group_rule,
                     SGr['id'])
 
-            LOG.info('lb_member_sec_group: {}'.format(cls.lb_member_sec_group))
+            LOG.info('lb_member_sec_group: %s', cls.lb_member_sec_group)
 
         # Setup backend member reencryption PKI
         cls._create_backend_reencryption_pki()
@@ -880,14 +878,12 @@
         cls.webserver1_ipv6 = server_details.get('ipv6_address')
         cls.webserver1_public_ip = server_details['public_ipv4_address']
 
-        LOG.debug('Octavia Setup: lb_member_webserver1 = {}'.format(
-            cls.lb_member_webserver1[const.ID]))
-        LOG.debug('Octavia Setup: webserver1_ip = {}'.format(
-            cls.webserver1_ip))
-        LOG.debug('Octavia Setup: webserver1_ipv6 = {}'.format(
-            cls.webserver1_ipv6))
-        LOG.debug('Octavia Setup: webserver1_public_ip = {}'.format(
-            cls.webserver1_public_ip))
+        LOG.debug('Octavia Setup: lb_member_webserver1 = %s',
+                  cls.lb_member_webserver1[const.ID])
+        LOG.debug('Octavia Setup: webserver1_ip = %s', cls.webserver1_ip)
+        LOG.debug('Octavia Setup: webserver1_ipv6 = %s', cls.webserver1_ipv6)
+        LOG.debug('Octavia Setup: webserver1_public_ip = %s',
+                  cls.webserver1_public_ip)
 
         # Create webserver 2 instance
         server_details = cls._create_webserver('lb_member_webserver2',
@@ -898,14 +894,12 @@
         cls.webserver2_ipv6 = server_details.get('ipv6_address')
         cls.webserver2_public_ip = server_details['public_ipv4_address']
 
-        LOG.debug('Octavia Setup: lb_member_webserver2 = {}'.format(
-            cls.lb_member_webserver2[const.ID]))
-        LOG.debug('Octavia Setup: webserver2_ip = {}'.format(
-            cls.webserver2_ip))
-        LOG.debug('Octavia Setup: webserver2_ipv6 = {}'.format(
-            cls.webserver2_ipv6))
-        LOG.debug('Octavia Setup: webserver2_public_ip = {}'.format(
-            cls.webserver2_public_ip))
+        LOG.debug('Octavia Setup: lb_member_webserver2 = %s',
+                  cls.lb_member_webserver2[const.ID])
+        LOG.debug('Octavia Setup: webserver2_ip = %s', cls.webserver2_ip)
+        LOG.debug('Octavia Setup: webserver2_ipv6 = %s', cls.webserver2_ipv6)
+        LOG.debug('Octavia Setup: webserver2_public_ip = %s',
+                  cls.webserver2_public_ip)
 
         if CONF.load_balancer.test_with_ipv6:
             # Enable the IPv6 nic in webserver 1
@@ -954,7 +948,7 @@
             external_gateway_info=dict(
                 network_id=CONF.network.public_network_id))
         cls.lb_member_router = result['router']
-        LOG.info('lb_member_router: {}'.format(cls.lb_member_router))
+        LOG.info('lb_member_router: %s', cls.lb_member_router)
         cls.addClassResourceCleanup(
             waiters.wait_for_not_found,
             cls.lb_mem_routers_client.delete_router,
@@ -1069,7 +1063,7 @@
             CONF.load_balancer.build_timeout,
             root_tag='server')
         webserver_details = {'server': server}
-        LOG.info('Created server: {}'.format(server))
+        LOG.info('Created server: %s', server)
 
         addresses = server['addresses']
         if CONF.load_balancer.disable_boot_network:
@@ -1091,7 +1085,7 @@
                 floating_network_id=CONF.network.public_network_id,
                 port_id=port_id)
             floating_ip = result['floatingip']
-            LOG.info('webserver1_floating_ip: {}'.format(floating_ip))
+            LOG.info('webserver1_floating_ip: %s', floating_ip)
             cls.addClassResourceCleanup(
                 waiters.wait_for_not_found,
                 cls.lb_mem_float_ip_client.delete_floatingip,
@@ -1126,7 +1120,7 @@
         # the new default (SFTP protocol) doesn't work with
         # cirros VMs.
         ssh_version = cls._get_openssh_version()
-        LOG.debug("ssh_version = {}".format(ssh_version))
+        LOG.debug("ssh_version = %s", ssh_version)
         return (ssh_version[0] > 8 or
                 (ssh_version[0] == 8 and ssh_version[1] >= 7))
 
diff --git a/octavia_tempest_plugin/tests/validators.py b/octavia_tempest_plugin/tests/validators.py
index 34e8148..5ff7bd5 100644
--- a/octavia_tempest_plugin/tests/validators.py
+++ b/octavia_tempest_plugin/tests/validators.py
@@ -105,7 +105,7 @@
                 return response_text
             except requests.exceptions.Timeout:
                 # Don't sleep as we have already waited the interval.
-                LOG.info('Request for {} timed out. Retrying.'.format(URL))
+                LOG.info('Request for %s timed out. Retrying.', URL)
             except (exceptions.InvalidHttpSuccessCode,
                     exceptions.InvalidHTTPResponseBody,
                     requests.exceptions.SSLError):
@@ -113,8 +113,8 @@
                     session.close()
                 raise
             except Exception as e:
-                LOG.info('Validate URL got exception: {0}. '
-                         'Retrying.'.format(e))
+                LOG.info('Validate URL got exception: %s. '
+                         'Retrying.', e)
                 time.sleep(request_interval)
         if requests_session is None:
             session.close()
@@ -443,8 +443,8 @@
         retry_number = 0
         received_data = None
         while retry_number < number_of_retries:
-            LOG.info('make_udp_requests_with_retries attempt '
-                     'number:{}'.format(retry_number))
+            LOG.info('make_udp_requests_with_retries attempt number: %s',
+                     retry_number)
             retry_number += 1
             try:
                 received_data = self.make_udp_request(
@@ -452,6 +452,5 @@
                     source_port=src_port)
                 break
             except Exception as e:
-                LOG.warning('make_udp_request has failed with: '
-                            '{}'.format(e))
+                LOG.warning('make_udp_request has failed with: %s', e)
         return received_data
diff --git a/octavia_tempest_plugin/tests/waiters.py b/octavia_tempest_plugin/tests/waiters.py
index fa6c112..820831a 100644
--- a/octavia_tempest_plugin/tests/waiters.py
+++ b/octavia_tempest_plugin/tests/waiters.py
@@ -48,8 +48,8 @@
     :returns: The object details from the show client.
     """
     start = int(time.time())
-    LOG.info('Waiting for {name} status to update to {status}'.format(
-        name=show_client.__name__, status=status))
+    LOG.info('Waiting for %s status to update to %s',
+             show_client.__name__, status)
     while True:
         if status == const.DELETED:
             try:
@@ -65,8 +65,8 @@
             object_details = response
 
         if object_details[status_key] == status:
-            LOG.info('{name}\'s status updated to {status}.'.format(
-                name=show_client.__name__, status=status))
+            LOG.info('%s\'s status updated to %s.',
+                     show_client.__name__, status)
             return object_details
         elif object_details[status_key] == 'ERROR' and not error_ok:
             message = ('{name} {field} updated to an invalid state of '
@@ -148,8 +148,8 @@
     :returns: None
     """
     start = int(time.time())
-    LOG.info('Waiting for {name} status to update to DELETED or be not '
-             'found(404)'.format(name=show_client.__name__))
+    LOG.info('Waiting for %s status to update to DELETED or be not found(404)',
+             show_client.__name__)
     while True:
         try:
             response = show_client(id, **kwargs)
@@ -162,8 +162,8 @@
             object_details = response
 
         if object_details[status_key] == const.DELETED:
-            LOG.info('{name}\'s status updated to DELETED.'.format(
-                name=show_client.__name__))
+            LOG.info('%s\'s status updated to DELETED.',
+                     show_client.__name__)
             return
         elif int(time.time()) - start >= check_timeout:
             message = (
diff --git a/test-requirements.txt b/test-requirements.txt
index 2125ea0..bb4fcfe 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>=3.0.1,<3.1.0;python_version>='3.5' # Apache-2.0
+hacking>=6.1.0,<6.2.0 # Apache-2.0
 
 coverage!=4.4,>=4.0 # Apache-2.0
 python-subunit>=1.0.0 # Apache-2.0/BSD
diff --git a/tox.ini b/tox.ini
index 29df1ca..d8c77d6 100644
--- a/tox.ini
+++ b/tox.ini
@@ -98,7 +98,6 @@
   O346 = checks:check_line_continuation_no_backslash
   O347 = checks:revert_must_have_kwargs
   O348 = checks:check_no_logging_imports
-  O349 = checks:check_no_import_mock
 paths =
   ./octavia_tempest_plugin/hacking