Add microversion support in scenario tests
Scenario test call multiple service APIs within same test. Many service like compute, volume etc support microversion but scenario test does not support microversion yet. This commit adds the microversion support in scenario tests so that they will be able to set multiple service microversion at the same time. Change-Id: I446e082331c9d1b37c40c9eeb896eec222c3c045
This commit is contained in:
parent
558eb2c8fd
commit
09c4eb99ce
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Add microversion support for scenario tests. Scenario test calls
|
||||
multiple service API within same test and many services like compute,
|
||||
volume and placement etc support API microversion. With microversion
|
||||
support in scenario test, we can call different service API with
|
||||
different microvesion. Which means we can implement scenario tests
|
||||
for microversion also.
|
||||
Currently Scenario manager support below services microversion:
|
||||
|
||||
* Compute
|
||||
* Volume
|
||||
* Placement
|
|
@ -28,6 +28,8 @@ from tempest.common.utils import net_utils
|
|||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest import exceptions
|
||||
from tempest.lib.common import api_microversion_fixture
|
||||
from tempest.lib.common import api_version_utils
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib.common.utils import test_utils
|
||||
from tempest.lib import exceptions as lib_exc
|
||||
|
@ -37,12 +39,57 @@ CONF = config.CONF
|
|||
|
||||
LOG = log.getLogger(__name__)
|
||||
|
||||
LATEST_MICROVERSION = 'latest'
|
||||
|
||||
|
||||
class ScenarioTest(tempest.test.BaseTestCase):
|
||||
"""Base class for scenario tests. Uses tempest own clients. """
|
||||
|
||||
credentials = ['primary']
|
||||
|
||||
compute_min_microversion = None
|
||||
compute_max_microversion = LATEST_MICROVERSION
|
||||
volume_min_microversion = None
|
||||
volume_max_microversion = LATEST_MICROVERSION
|
||||
placement_min_microversion = None
|
||||
placement_max_microversion = LATEST_MICROVERSION
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(ScenarioTest, cls).skip_checks()
|
||||
api_version_utils.check_skip_with_microversion(
|
||||
cls.compute_min_microversion, cls.compute_max_microversion,
|
||||
CONF.compute.min_microversion, CONF.compute.max_microversion)
|
||||
api_version_utils.check_skip_with_microversion(
|
||||
cls.volume_min_microversion, cls.volume_max_microversion,
|
||||
CONF.volume.min_microversion, CONF.volume.max_microversion)
|
||||
api_version_utils.check_skip_with_microversion(
|
||||
cls.placement_min_microversion, cls.placement_max_microversion,
|
||||
CONF.placement.min_microversion, CONF.placement.max_microversion)
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
super(ScenarioTest, cls).resource_setup()
|
||||
cls.compute_request_microversion = (
|
||||
api_version_utils.select_request_microversion(
|
||||
cls.compute_min_microversion,
|
||||
CONF.compute.min_microversion))
|
||||
cls.volume_request_microversion = (
|
||||
api_version_utils.select_request_microversion(
|
||||
cls.volume_min_microversion,
|
||||
CONF.volume.min_microversion))
|
||||
cls.placement_request_microversion = (
|
||||
api_version_utils.select_request_microversion(
|
||||
cls.placement_min_microversion,
|
||||
CONF.placement.min_microversion))
|
||||
|
||||
def setUp(self):
|
||||
super(ScenarioTest, self).setUp()
|
||||
self.useFixture(api_microversion_fixture.APIMicroversionFixture(
|
||||
compute_microversion=self.compute_request_microversion,
|
||||
volume_microversion=self.volume_request_microversion,
|
||||
placement_microversion=self.placement_request_microversion))
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(ScenarioTest, cls).setup_clients()
|
||||
|
|
Loading…
Reference in New Issue