Merge "Tempest tests uses only supported QoS rule types"

This commit is contained in:
Jenkins 2016-12-08 23:49:51 +00:00 committed by Gerrit Code Review
commit 119bb3c47d
3 changed files with 23 additions and 0 deletions

View File

@ -348,6 +348,11 @@ class BaseNetworkTest(test.BaseTestCase):
router_id, subnet_id)
return interface
@classmethod
def get_supported_qos_rule_types(cls):
body = cls.client.list_qos_rule_types()
return [rule_type['type'] for rule_type in body['rule_types']]
@classmethod
def create_qos_policy(cls, name, description=None, shared=False,
tenant_id=None):
@ -492,6 +497,18 @@ class BaseAdminNetworkTest(BaseNetworkTest):
raise exceptions.InvalidConfiguration(message)
def require_qos_rule_type(rule_type):
def decorator(f):
@functools.wraps(f)
def wrapper(self, *func_args, **func_kwargs):
if rule_type not in self.get_supported_qos_rule_types():
raise self.skipException(
"%s rule type is required." % rule_type)
return f(self, *func_args, **func_kwargs)
return wrapper
return decorator
def _require_sorting(f):
@functools.wraps(f)
def inner(self, *args, **kwargs):

View File

@ -360,6 +360,7 @@ class QosTestJSON(base.BaseAdminNetworkTest):
class QosBandwidthLimitRuleTestJSON(base.BaseAdminNetworkTest):
@classmethod
@base.require_qos_rule_type(qos_consts.RULE_TYPE_BANDWIDTH_LIMIT)
@test.requires_ext(extension="qos", service="network")
def resource_setup(cls):
super(QosBandwidthLimitRuleTestJSON, cls).resource_setup()
@ -771,6 +772,7 @@ class QosDscpMarkingRuleTestJSON(base.BaseAdminNetworkTest):
VALID_DSCP_MARK2 = 48
@classmethod
@base.require_qos_rule_type(qos_consts.RULE_TYPE_DSCP_MARKING)
@test.requires_ext(extension="qos", service="network")
def resource_setup(cls):
super(QosDscpMarkingRuleTestJSON, cls).resource_setup()
@ -904,6 +906,7 @@ class QosMinimumBandwidthRuleTestJSON(base.BaseAdminNetworkTest):
RULES_NAME = RULE_NAME + "s"
@classmethod
@base.require_qos_rule_type(qos_consts.RULE_TYPE_MINIMUM_BANDWIDTH)
@test.requires_ext(extension="qos", service="network")
def resource_setup(cls):
super(QosMinimumBandwidthRuleTestJSON, cls).resource_setup()

View File

@ -22,6 +22,8 @@ from tempest.lib import exceptions
from tempest import test
from neutron.common import utils
from neutron.services.qos import qos_consts
from neutron.tests.tempest.api import base as base_api
from neutron.tests.tempest import config
from neutron.tests.tempest.scenario import base
from neutron.tests.tempest.scenario import constants
@ -78,6 +80,7 @@ class QoSTest(base.BaseTempestTestCase):
FILE_PATH = "/tmp/img"
@classmethod
@base_api.require_qos_rule_type(qos_consts.RULE_TYPE_BANDWIDTH_LIMIT)
@test.requires_ext(extension="qos", service="network")
def resource_setup(cls):
super(QoSTest, cls).resource_setup()