Skip integration tests when Swift is not available
Let's skip integration tests using Swift when the service is not
available. It will help turn the py3 gate green.
Change-Id: Ib3536583dbb3bbf50d9c64976e909fd352391d05
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')