diff --git a/common/test.py b/common/test.py
index b422012..e387f3e 100644
--- a/common/test.py
+++ b/common/test.py
@@ -18,6 +18,7 @@
 
 import fixtures
 from heatclient import exc as heat_exceptions
+from keystoneauth1 import exceptions as kc_exceptions
 from neutronclient.common import exceptions as network_exceptions
 from oslo_log import log as logging
 from oslo_utils import timeutils
@@ -194,6 +195,15 @@
             return False
         return True
 
+    def is_service_available(self, service_type):
+        try:
+            self.identity_client.get_endpoint_url(
+                service_type, self.conf.region)
+        except kc_exceptions.EndpointNotFound:
+            return False
+        else:
+            return True
+
     @staticmethod
     def _stack_output(stack, output_key, validate_errors=True):
         """Return a stack output value for a given key."""
diff --git a/functional/test_aws_stack.py b/functional/test_aws_stack.py
index 1241d22..05539dc 100644
--- a/functional/test_aws_stack.py
+++ b/functional/test_aws_stack.py
@@ -72,6 +72,8 @@
 
     def setUp(self):
         super(AwsStackTest, self).setUp()
+        if not self.is_service_available('object-store'):
+            self.skipTest('object-store service not available, skipping')
         self.object_container_name = test.rand_name()
         self.project_id = self.identity_client.project_id
         self.swift_key = hashlib.sha224(
diff --git a/functional/test_swiftsignal_update.py b/functional/test_swiftsignal_update.py
index 0cf2f81..9e656b1 100644
--- a/functional/test_swiftsignal_update.py
+++ b/functional/test_swiftsignal_update.py
@@ -34,6 +34,8 @@
 class SwiftSignalHandleUpdateTest(functional_base.FunctionalTestsBase):
 
     def test_stack_update_same_template_replace_no_url(self):
+        if not self.is_service_available('object-store'):
+            self.skipTest('object-store service not available, skipping')
         stack_identifier = self.stack_create(template=test_template)
         stack = self.client.stacks.get(stack_identifier)
         orig_url = self._stack_output(stack, 'signal_url')
