Skip object-store functional tests when Swift is not available

Specifically, in the py3 jobs Swift is not (yet) properly starting as
a py2 service, so we disabled swift in those OSC jobs and need to
skip the object-store functional tests in that case.

Change-Id: I073551c41b7636f04b3ee97dc6fe69630e207b67
This commit is contained in:
Dean Troyer 2017-07-26 11:31:06 -05:00
parent 86bda36963
commit 022fdb10eb
3 changed files with 48 additions and 11 deletions

View File

@ -0,0 +1,22 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from openstackclient.tests.functional import base
class ObjectStoreTests(base.TestCase):
"""Functional tests for Object Store commands"""
@classmethod
def setUpClass(cls):
super(ObjectStoreTests, cls).setUpClass()
cls.haz_object_store = base.is_service_enabled('object-store')

View File

@ -12,28 +12,37 @@
import uuid
from openstackclient.tests.functional import base
# from openstackclient.tests.functional import base
from openstackclient.tests.functional.object.v1 import common
class ContainerTests(base.TestCase):
"""Functional tests for object containers. """
class ContainerTests(common.ObjectStoreTests):
"""Functional tests for Object Store container commands"""
NAME = uuid.uuid4().hex
@classmethod
def setUpClass(cls):
super(ContainerTests, cls).setUpClass()
opts = cls.get_opts(['container'])
raw_output = cls.openstack('container create ' + cls.NAME + opts)
cls.assertOutput(cls.NAME + '\n', raw_output)
if cls.haz_object_store:
opts = cls.get_opts(['container'])
raw_output = cls.openstack('container create ' + cls.NAME + opts)
cls.assertOutput(cls.NAME + '\n', raw_output)
@classmethod
def tearDownClass(cls):
try:
raw_output = cls.openstack('container delete ' + cls.NAME)
cls.assertOutput('', raw_output)
if cls.haz_object_store:
raw_output = cls.openstack('container delete ' + cls.NAME)
cls.assertOutput('', raw_output)
finally:
super(ContainerTests, cls).tearDownClass()
def setUp(self):
super(ContainerTests, self).setUp()
# Skip tests if no object-store is present
if not self.haz_object_store:
self.skipTest("No object-store service present")
def test_container_list(self):
opts = self.get_opts(['Name'])
raw_output = self.openstack('container list' + opts)

View File

@ -14,18 +14,24 @@ import os
import tempfile
import uuid
from openstackclient.tests.functional import base
from openstackclient.tests.functional.object.v1 import common
BASIC_LIST_HEADERS = ['Name']
CONTAINER_FIELDS = ['account', 'container', 'x-trans-id']
OBJECT_FIELDS = ['object', 'container', 'etag']
class ObjectTests(base.TestCase):
"""Functional tests for Object commands. """
class ObjectTests(common.ObjectStoreTests):
"""Functional tests for Object Store object commands"""
CONTAINER_NAME = uuid.uuid4().hex
def setUp(self):
super(ObjectTests, self).setUp()
# Skip tests if no object-store is present
if not self.haz_object_store:
self.skipTest("No object-store service present")
def test_object(self):
with tempfile.NamedTemporaryFile() as f:
f.write('test content')