diff --git a/neutron_tempest_plugin/api/test_subnetpool_prefix_ops.py b/neutron_tempest_plugin/api/test_subnetpool_prefix_ops.py
index 49cce5b..2cd4e1f 100644
--- a/neutron_tempest_plugin/api/test_subnetpool_prefix_ops.py
+++ b/neutron_tempest_plugin/api/test_subnetpool_prefix_ops.py
@@ -23,7 +23,7 @@
 SUBNET_NAME = 'smoke-subnet'
 
 
-class SubnetPoolPrefixOpsTestMixin(object):
+class SubnetPoolPrefixOpsTestMixin(test_subnetpools.SubnetPoolsTestBase):
 
     def _compare_prefix_lists(self, list_expected, list_observed):
         expected_set = netaddr.IPSet(iterable=list_expected)
@@ -65,8 +65,7 @@
                                    resp['prefixes'])
 
 
-class SubnetPoolPrefixOpsIpv4Test(test_subnetpools.SubnetPoolsTestBase,
-                                  SubnetPoolPrefixOpsTestMixin):
+class SubnetPoolPrefixOpsIpv4Test(SubnetPoolPrefixOpsTestMixin):
 
     prefixes = ['192.168.1.0/24', '10.10.10.0/24']
     prefixes_to_add = ['192.168.2.0/24']
@@ -81,8 +80,7 @@
                                 'min_prefixlen': cls.min_prefixlen}
 
 
-class SubnetPoolPrefixOpsIpv6Test(test_subnetpools.SubnetPoolsTestBase,
-                                  SubnetPoolPrefixOpsTestMixin):
+class SubnetPoolPrefixOpsIpv6Test(SubnetPoolPrefixOpsTestMixin):
 
     prefixes = ['2001:db8:1234::/48', '2001:db8:1235::/48']
     prefixes_to_add = ['2001:db8:4321::/48']
diff --git a/neutron_tempest_plugin/api/test_subnetpools.py b/neutron_tempest_plugin/api/test_subnetpools.py
index 38c721f..9ab7a49 100644
--- a/neutron_tempest_plugin/api/test_subnetpools.py
+++ b/neutron_tempest_plugin/api/test_subnetpools.py
@@ -28,6 +28,13 @@
 class SubnetPoolsTestBase(base.BaseAdminNetworkTest):
 
     @classmethod
+    def skip_checks(cls):
+        super(SubnetPoolsTestBase, cls).skip_checks()
+        if not utils.is_extension_enabled('default-subnetpools', 'network'):
+            msg = "default-subnetpools extension not enabled."
+            raise cls.skipException(msg)
+
+    @classmethod
     def resource_setup(cls):
         super(SubnetPoolsTestBase, cls).resource_setup()
         min_prefixlen = '29'
@@ -328,7 +335,6 @@
         self.assertIsNone(body['subnetpool']['address_scope_id'])
 
     @decorators.idempotent_id('4c6963c2-f54c-4347-b288-75d18421c4c4')
-    @utils.requires_ext(extension='default-subnetpools', service='network')
     def test_tenant_create_non_default_subnetpool(self):
         """Test creates a subnetpool, the "is_default" attribute is False."""
         created_subnetpool = self._create_subnetpool()
diff --git a/neutron_tempest_plugin/api/test_subnetpools_negative.py b/neutron_tempest_plugin/api/test_subnetpools_negative.py
index 1e222df..d9ce47c 100644
--- a/neutron_tempest_plugin/api/test_subnetpools_negative.py
+++ b/neutron_tempest_plugin/api/test_subnetpools_negative.py
@@ -62,7 +62,6 @@
 
     @decorators.attr(type='negative')
     @decorators.idempotent_id('6ae09d8f-95be-40ed-b1cf-8b850d45bab5')
-    @utils.requires_ext(extension='default-subnetpools', service='network')
     def test_tenant_create_default_subnetpool(self):
         # 'default' subnetpool can only be created by admin.
         self.assertRaises(lib_exc.Forbidden, self._create_subnetpool,
