From 9398dedd9871d95265d7e5081c14d969fb92aa37 Mon Sep 17 00:00:00 2001 From: Thomas Herve Date: Thu, 23 Mar 2017 11:20:14 +0100 Subject: [PATCH] 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 --- heat_integrationtests/common/test.py | 10 ++++++++++ heat_integrationtests/functional/test_aws_stack.py | 2 ++ .../functional/test_swiftsignal_update.py | 2 ++ 3 files changed, 14 insertions(+) diff --git a/heat_integrationtests/common/test.py b/heat_integrationtests/common/test.py index b422012f9..e387f3e73 100644 --- a/heat_integrationtests/common/test.py +++ b/heat_integrationtests/common/test.py @@ -18,6 +18,7 @@ import time 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 @@ class HeatIntegrationTest(testscenarios.WithScenarios, 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/heat_integrationtests/functional/test_aws_stack.py b/heat_integrationtests/functional/test_aws_stack.py index 1241d22aa..05539dca8 100644 --- a/heat_integrationtests/functional/test_aws_stack.py +++ b/heat_integrationtests/functional/test_aws_stack.py @@ -72,6 +72,8 @@ Outputs: 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/heat_integrationtests/functional/test_swiftsignal_update.py b/heat_integrationtests/functional/test_swiftsignal_update.py index 0cf2f81b2..9e656b104 100644 --- a/heat_integrationtests/functional/test_swiftsignal_update.py +++ b/heat_integrationtests/functional/test_swiftsignal_update.py @@ -34,6 +34,8 @@ outputs: 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')