diff --git a/manila_tempest_tests/tests/api/admin/test_share_groups.py b/manila_tempest_tests/tests/api/admin/test_share_groups.py
index c7b3a42..541acbb 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_groups.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_groups.py
@@ -16,6 +16,7 @@
 import ddt
 from tempest import config
 from tempest.lib.common.utils import data_utils
+from tempest.lib import exceptions
 import testtools
 from testtools import testcase as tc
 
@@ -136,10 +137,13 @@
               constants.SHARE_GROUPS_GRADUATION_VERSION, LATEST_MICROVERSION]))
     def test_default_share_group_type_applied(self, version):
         self.skip_if_microversion_not_supported(version)
-
-        default_type = self.shares_v2_client.get_default_share_group_type(
-            version=version
-        )
+        try:
+            default_type = self.shares_v2_client.get_default_share_group_type(
+                version=version
+            )
+        except exceptions.NotFound:
+            msg = "There is no default share group type"
+            raise self.skipException(msg)
         default_share_types = default_type['share_types']
 
         share_group = self.create_share_group(
diff --git a/manila_tempest_tests/tests/api/test_shares.py b/manila_tempest_tests/tests/api/test_shares.py
index 49af8e2..fce8247 100644
--- a/manila_tempest_tests/tests/api/test_shares.py
+++ b/manila_tempest_tests/tests/api/test_shares.py
@@ -110,6 +110,16 @@
             detailed_elements.add('progress')
             self.assertTrue(detailed_elements.issubset(share.keys()), msg)
 
+        # This check will ensure that when a share creation request is handled,
+        # if the driver has the "driver handles share servers" option enabled,
+        # that a share server will be created, otherwise, not.
+        share_get = self.admin_shares_v2_client.get_share(share['id'])
+        share_server = share_get['share_server_id']
+        if CONF.share.multitenancy_enabled:
+            self.assertNotEmpty(share_server)
+        else:
+            self.assertEmpty(share_server)
+
         # Delete share
         self.shares_v2_client.delete_share(share['id'])
         self.shares_v2_client.wait_for_resource_deletion(share_id=share['id'])
diff --git a/manila_tempest_tests/tests/scenario/manager_share.py b/manila_tempest_tests/tests/scenario/manager_share.py
index 62f851c..aed0edd 100644
--- a/manila_tempest_tests/tests/scenario/manager_share.py
+++ b/manila_tempest_tests/tests/scenario/manager_share.py
@@ -91,7 +91,7 @@
                 msg = ("Image %s not found. Expecting an image including "
                        "required share tools." %
                        CONF.share.image_with_share_tools)
-                raise exceptions.InvalidConfiguration(message=msg)
+                raise exceptions.InvalidConfiguration(msg)
         self.ssh_user = CONF.share.image_username
         LOG.debug('Starting test for i:{image_id}, f:{flavor}. '
                   'user: {ssh_user}'.format(image_id=self.image_id,
