From f407e1014bf6ab38e016f84dbf9f027e91ebb108 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Thu, 5 Oct 2017 14:19:32 -0400 Subject: [PATCH] Allow convergence-specific Tempest tests Add a "convergence_engine_enabled" configuration option to the functional tests' Tempest plugin. The option is enabled by default, but can be disabled by setting the DISABLE_CONVERGENCE environment variable to "true" when running prepare_test_env.sh, so that if convergence is disabled in devstack it will also be disabled in Tempest. This will allow us to write functional tests for convergence-specific (or non-convergence-specific) behaviours. Change-Id: If3a37de75467d50af10582215e16611e59a4ad06 --- common/config.py | 4 ++++ common/test.py | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/common/config.py b/common/config.py index d7126c4..eddac01 100644 --- a/common/config.py +++ b/common/config.py @@ -140,6 +140,10 @@ HeatGroup = [ cfg.ListOpt('skip_test_stack_action_list', help="List of stack actions in tests to skip " "ex. ABANDON, ADOPT, SUSPEND, RESUME"), + cfg.BoolOpt('convergence_engine_enabled', + default=True, + help="Test features that are only present for stacks with " + "convergence enabled."), cfg.IntOpt('volume_size', default=1, help='Default size in GB for volumes created by volumes tests'), diff --git a/common/test.py b/common/test.py index d43dece..a6aab7e 100644 --- a/common/test.py +++ b/common/test.py @@ -68,6 +68,17 @@ def rand_name(name=''): return randbits +def requires_convergence(test_method): + '''Decorator for convergence-only tests. + + The decorated test will be skipped when convergence is disabled. + ''' + convergence_enabled = config.CONF.heat_plugin.convergence_engine_enabled + skipper = testtools.skipUnless(convergence_enabled, + "Convergence-only tests are disabled") + return skipper(test_method) + + class HeatIntegrationTest(testscenarios.WithScenarios, testtools.TestCase):