Merge "Tempest tests uses only supported QoS rule types"
This commit is contained in:
commit
119bb3c47d
|
@ -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):
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue