diff --git a/octavia_tempest_plugin/tests/api/v2/test_pool.py b/octavia_tempest_plugin/tests/api/v2/test_pool.py
index 50a94eb..593ac6d 100644
--- a/octavia_tempest_plugin/tests/api/v2/test_pool.py
+++ b/octavia_tempest_plugin/tests/api/v2/test_pool.py
@@ -549,13 +549,18 @@
         parser.parse(pool[const.CREATED_AT])
         parser.parse(pool[const.UPDATED_AT])
         UUID(pool[const.ID])
-        # Operating status for pools will always be offline without members
-        self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS])
+        if provider == 'tungstenfabric':
+            # Operating status for a pool without members will be ONLINE if
+            # it is attached to a listener
+            self.assertNotEmpty(pool[const.LISTENERS])
+            self.assertEqual(const.ONLINE, pool[const.OPERATING_STATUS])
+        else:
+            # Operating status for pools will always be offline without members
+            self.assertEmpty(pool[const.LISTENERS])
+            self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS])
         self.assertEqual(self.protocol, pool[const.PROTOCOL])
         self.assertEqual(1, len(pool[const.LOADBALANCERS]))
         self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID])
-        if provider != 'tungstenfabric':
-            self.assertEmpty(pool[const.LISTENERS])
         self.assertEqual(self.lb_algorithm,
                          pool[const.LB_ALGORITHM])
         if self.lb_feature_enabled.session_persistence_enabled:
@@ -666,15 +671,15 @@
         if CONF.load_balancer.provider == 'tungstenfabric':
             # Operating status for a pool without members will be ONLINE if
             # it is attached to a listener
+            self.assertNotEmpty(pool[const.LISTENERS])
             self.assertEqual(const.ONLINE, pool[const.OPERATING_STATUS])
         else:
             # Operating status for pools will always be offline without members
+            self.assertEmpty(pool[const.LISTENERS])
             self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS])
         self.assertEqual(self.protocol, pool[const.PROTOCOL])
         self.assertEqual(1, len(pool[const.LOADBALANCERS]))
         self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID])
-        if CONF.load_balancer.provider != 'tungstenfabric':
-            self.assertEmpty(pool[const.LISTENERS])
         self.assertEqual(self.lb_algorithm,
                          pool[const.LB_ALGORITHM])
         if self.lb_feature_enabled.session_persistence_enabled:
diff --git a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
index 91c2a07..2311dd0 100644
--- a/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
+++ b/octavia_tempest_plugin/tests/scenario/v2/test_pool.py
@@ -140,7 +140,13 @@
         parser.parse(pool[const.CREATED_AT])
         parser.parse(pool[const.UPDATED_AT])
         UUID(pool[const.ID])
-        self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS])
+        if CONF.load_balancer.provider == 'tungstenfabric':
+            # Operating status for a pool without members will be ONLINE if
+            # it is attached to a listener
+            self.assertNotEmpty(pool[const.LISTENERS])
+            self.assertEqual(const.ONLINE, pool[const.OPERATING_STATUS])
+        else:
+            self.assertEqual(const.OFFLINE, pool[const.OPERATING_STATUS])
         self.assertEqual(self.protocol, pool[const.PROTOCOL])
         self.assertEqual(1, len(pool[const.LOADBALANCERS]))
         self.assertEqual(self.lb_id, pool[const.LOADBALANCERS][0][const.ID])
