diff --git a/manila_tempest_tests/services/share/json/shares_client.py b/manila_tempest_tests/services/share/json/shares_client.py
index 3481151..b2eabb4 100644
--- a/manila_tempest_tests/services/share/json/shares_client.py
+++ b/manila_tempest_tests/services/share/json/shares_client.py
@@ -467,9 +467,9 @@
             metadata = {}
         post_body = {"metadata": metadata}
         body = json.dumps(post_body)
-        if method is "post":
+        if method == "post":
             resp, metadata = self.post(uri, body)
-        if method is "put":
+        if method == "put":
             resp, metadata = self.put(uri, body)
         self.expected_success(200, resp.status)
         return self._parse_resp(metadata)
diff --git a/manila_tempest_tests/services/share/v2/json/shares_client.py b/manila_tempest_tests/services/share/v2/json/shares_client.py
index 3c1f5a4..b19872b 100644
--- a/manila_tempest_tests/services/share/v2/json/shares_client.py
+++ b/manila_tempest_tests/services/share/v2/json/shares_client.py
@@ -869,7 +869,6 @@
         self.expected_success(200, resp.status)
         return body
 
-
 ###############
 
     def list_availability_zones(self, url='availability-zones',
diff --git a/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py b/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py
index fe211ff..ef4f80b 100644
--- a/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_export_locations_negative.py
@@ -33,8 +33,12 @@
     @classmethod
     def resource_setup(cls):
         super(ExportLocationsNegativeTest, cls).resource_setup()
+        # admin_client and different_project_client pertain to isolated
+        # projects, admin_member_client is a regular user in admin's project
         cls.admin_client = cls.admin_shares_v2_client
-        cls.member_client = cls.shares_v2_client
+        cls.admin_member_client = (
+            cls.admin_project_member_client.shares_v2_client)
+        cls.different_project_client = cls.shares_v2_client
         # create share type
         cls.share_type = cls._create_share_type()
         cls.share_type_id = cls.share_type['id']
@@ -65,26 +69,43 @@
             )
 
     @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
-    def test_list_share_instance_export_locations_by_member(self):
+    def test_list_share_instance_export_locations_as_member(self):
         for share_instance in self.share_instances:
             self.assertRaises(
                 lib_exc.Forbidden,
-                self.member_client.list_share_instance_export_locations,
-                "fake-inexistent-share-instance-id",
-            )
+                self.admin_member_client.list_share_instance_export_locations,
+                share_instance['id'])
 
     @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
-    def test_get_share_instance_export_location_by_member(self):
+    def test_get_share_instance_export_locations_as_member(self):
         for share_instance in self.share_instances:
             export_locations = (
                 self.admin_client.list_share_instance_export_locations(
                     share_instance['id']))
             for el in export_locations:
-                self.assertRaises(
-                    lib_exc.Forbidden,
-                    self.member_client.get_share_instance_export_location,
-                    share_instance['id'], el['id'],
-                )
+                self.assertRaises(lib_exc.Forbidden,
+                                  (self.admin_member_client.
+                                   get_share_instance_export_location),
+                                  share_instance['id'], el['id'])
+
+    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
+    def test_list_share_export_locations_by_different_project_user(self):
+        self.assertRaises(
+            lib_exc.Forbidden,
+            self.different_project_client.list_share_export_locations,
+            self.share['id'])
+
+    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
+    def test_get_share_export_location_by_different_project_user(self):
+        export_locations = self.admin_client.list_share_export_locations(
+            self.share['id'])
+
+        for export_location in export_locations:
+            self.assertRaises(
+                lib_exc.Forbidden,
+                self.different_project_client.get_share_export_location,
+                self.share['id'],
+                export_location['id'])
 
 
 class ExportLocationsAPIOnlyNegativeTest(base.BaseSharesAdminTest):
diff --git a/manila_tempest_tests/tests/api/base.py b/manila_tempest_tests/tests/api/base.py
index 89f2e92..22b1d72 100644
--- a/manila_tempest_tests/tests/api/base.py
+++ b/manila_tempest_tests/tests/api/base.py
@@ -980,7 +980,7 @@
                 res_id = res['id']
                 client = res["client"]
                 with handle_cleanup_exceptions():
-                    if res["type"] is "share":
+                    if res["type"] == "share":
                         cls.clear_share_replicas(res_id)
                         share_group_id = res.get('share_group_id')
                         if share_group_id:
@@ -989,35 +989,35 @@
                         else:
                             client.delete_share(res_id)
                         client.wait_for_resource_deletion(share_id=res_id)
-                    elif res["type"] is "snapshot":
+                    elif res["type"] == "snapshot":
                         client.delete_snapshot(res_id)
                         client.wait_for_resource_deletion(snapshot_id=res_id)
-                    elif (res["type"] is "share_network" and
+                    elif (res["type"] == "share_network" and
                             res_id != CONF.share.share_network_id):
                         client.delete_share_network(res_id)
                         client.wait_for_resource_deletion(sn_id=res_id)
-                    elif res["type"] is "security_service":
+                    elif res["type"] == "security_service":
                         client.delete_security_service(res_id)
                         client.wait_for_resource_deletion(ss_id=res_id)
-                    elif res["type"] is "share_type":
+                    elif res["type"] == "share_type":
                         client.delete_share_type(res_id)
                         client.wait_for_resource_deletion(st_id=res_id)
-                    elif res["type"] is "share_group":
+                    elif res["type"] == "share_group":
                         client.delete_share_group(res_id)
                         client.wait_for_resource_deletion(
                             share_group_id=res_id)
-                    elif res["type"] is "share_group_type":
+                    elif res["type"] == "share_group_type":
                         client.delete_share_group_type(res_id)
                         client.wait_for_resource_deletion(
                             share_group_type_id=res_id)
-                    elif res["type"] is "share_group_snapshot":
+                    elif res["type"] == "share_group_snapshot":
                         client.delete_share_group_snapshot(res_id)
                         client.wait_for_resource_deletion(
                             share_group_snapshot_id=res_id)
-                    elif res["type"] is "share_replica":
+                    elif res["type"] == "share_replica":
                         client.delete_share_replica(res_id)
                         client.wait_for_resource_deletion(replica_id=res_id)
-                    elif res["type"] is "share_network_subnet":
+                    elif res["type"] == "share_network_subnet":
                         sn_id = res["extra_params"]["share_network_id"]
                         client.delete_subnet(sn_id, res_id)
                         client.wait_for_resource_deletion(
diff --git a/manila_tempest_tests/tests/scenario/test_share_basic_ops.py b/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
index b9b17da..3ead5df 100644
--- a/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
+++ b/manila_tempest_tests/tests/scenario/test_share_basic_ops.py
@@ -187,8 +187,8 @@
 
         if (force_host_assisted and
                 not CONF.share.run_host_assisted_migration_tests):
-                raise self.skipException("Host-assisted migration tests are "
-                                         "disabled.")
+            raise self.skipException("Host-assisted migration tests are "
+                                     "disabled.")
         elif (not force_host_assisted and
               not CONF.share.run_driver_assisted_migration_tests):
             raise self.skipException("Driver-assisted migration tests are "
diff --git a/test-requirements.txt b/test-requirements.txt
index 337b82e..6a6ab89 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<0.13,>=0.12.0 # Apache-2.0
+hacking>=3.0,<3.1.0;python_version>'3' # 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 0218477..59764db 100644
--- a/tox.ini
+++ b/tox.ini
@@ -35,8 +35,9 @@
 
 [flake8]
 # E123, E125 skipped as they are invalid PEP-8.
-
+# W503 line break before binary operator
+# W504 line break after binary operator
 show-source = True
-ignore = E123,E125
+ignore = E123,E125,W503,W504
 builtins = _
 exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
