Merge "Initialize tests of real clouds"
This commit is contained in:
7
include-acceptance-regular-user.txt
Normal file
7
include-acceptance-regular-user.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
# This file contains list of tests that can work with regular user privileges
|
||||
# Until all tests are modified to properly identify whether they are able to
|
||||
# run or must skip the ones that are known to work are listed here.
|
||||
openstack.tests.functional.block_storage.v3.test_volume
|
||||
# Do not enable test_backup for now, since it is not capable to determine
|
||||
# backup capabilities of the cloud
|
||||
# openstack.tests.functional.block_storage.v3.test_backup
|
@@ -12,6 +12,8 @@
|
||||
|
||||
import operator
|
||||
import os
|
||||
import time
|
||||
import uuid
|
||||
|
||||
from keystoneauth1 import discover
|
||||
|
||||
@@ -57,10 +59,11 @@ class BaseFunctionalTest(base.TestCase):
|
||||
|
||||
self.config = openstack.config.OpenStackConfig()
|
||||
self._set_user_cloud()
|
||||
self._set_operator_cloud()
|
||||
if self._op_name:
|
||||
self._set_operator_cloud()
|
||||
|
||||
self.identity_version = \
|
||||
self.operator_cloud.config.get_api_version('identity')
|
||||
self.user_cloud.config.get_api_version('identity')
|
||||
|
||||
self.flavor = self._pick_flavor()
|
||||
self.image = self._pick_image()
|
||||
@@ -78,10 +81,11 @@ class BaseFunctionalTest(base.TestCase):
|
||||
|
||||
# This cloud is used by the project_cleanup test, so you can't rely on
|
||||
# it
|
||||
user_config_alt = self.config.get_one(
|
||||
cloud=self._demo_name_alt, **kwargs)
|
||||
self.user_cloud_alt = connection.Connection(config=user_config_alt)
|
||||
_disable_keep_alive(self.user_cloud_alt)
|
||||
if self._demo_name_alt:
|
||||
user_config_alt = self.config.get_one(
|
||||
cloud=self._demo_name_alt, **kwargs)
|
||||
self.user_cloud_alt = connection.Connection(config=user_config_alt)
|
||||
_disable_keep_alive(self.user_cloud_alt)
|
||||
|
||||
def _set_operator_cloud(self, **kwargs):
|
||||
operator_config = self.config.get_one(cloud=self._op_name, **kwargs)
|
||||
@@ -216,6 +220,15 @@ class BaseFunctionalTest(base.TestCase):
|
||||
f'{min_microversion}'
|
||||
)
|
||||
|
||||
def getUniqueString(self, prefix=None):
|
||||
"""Generate unique resource name"""
|
||||
# Globally unique names can only rely on some form of uuid
|
||||
# unix_t is also used to easier determine orphans when running real
|
||||
# functional tests on a real cloud
|
||||
return (prefix if prefix else '') + "{time}-{uuid}".format(
|
||||
time=int(time.time()),
|
||||
uuid=uuid.uuid4().hex)
|
||||
|
||||
|
||||
class KeystoneBaseFunctionalTest(BaseFunctionalTest):
|
||||
|
||||
|
@@ -20,7 +20,5 @@ class BaseBlockStorageTest(base.BaseFunctionalTest):
|
||||
def setUp(self):
|
||||
super(BaseBlockStorageTest, self).setUp()
|
||||
self._set_user_cloud(block_storage_api_version='3')
|
||||
self._set_operator_cloud(block_storage_api_version='3')
|
||||
|
||||
if not self.user_cloud.has_service('block-storage', '3'):
|
||||
self.skipTest('block-storage service not supported by cloud')
|
||||
|
@@ -22,7 +22,9 @@ class TestType(base.BaseBlockStorageTest):
|
||||
|
||||
self.TYPE_NAME = self.getUniqueString()
|
||||
self.TYPE_ID = None
|
||||
|
||||
if not self._op_name:
|
||||
self.skip("Operator cloud must be set for this test")
|
||||
self._set_operator_cloud(block_storage_api_version='3')
|
||||
sot = self.operator_cloud.block_storage.create_type(
|
||||
name=self.TYPE_NAME)
|
||||
assert isinstance(sot, _type.Type)
|
||||
|
17
tox.ini
17
tox.ini
@@ -38,6 +38,23 @@ commands =
|
||||
stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs}
|
||||
stestr slowest
|
||||
|
||||
# Acceptance tests are the ones running on real clouds
|
||||
[testenv:acceptance-regular-user]
|
||||
# This env intends to test functions of a regular user without admin privileges
|
||||
# Some jobs (especially heat) takes longer, therefore increase default timeout
|
||||
# This timeout should not be smaller, than the longest individual timeout
|
||||
setenv =
|
||||
{[testenv]setenv}
|
||||
OS_TEST_TIMEOUT=600
|
||||
OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
|
||||
# OPENSTACKSDK_DEMO_CLOUD and OS_CLOUD should point to the cloud to test
|
||||
# Othee clouds are explicitly set empty to let tests detect absense
|
||||
OPENSTACKSDK_DEMO_CLOUD_ALT=
|
||||
OPENSTACKSDK_OPERATOR_CLOUD=
|
||||
commands =
|
||||
stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs} --include-list include-acceptance-regular-user.txt
|
||||
stestr slowest
|
||||
|
||||
[testenv:pep8]
|
||||
deps =
|
||||
hacking>=3.1.0,<4.0.0 # Apache-2.0
|
||||
|
Reference in New Issue
Block a user