Add FlowDirectionAndAnyEnumField common type

This common type is going to be used by QoS min PPS, which supports
not only '[e|i]gress' direction, but also 'any'.

Related-Bug: #1922237
See-Also: https://review.opendev.org/785236
Change-Id: I8666db65ad337bd7b003453fce9ffbaa76a7d291
This commit is contained in:
Przemyslaw Szczerbik 2021-07-16 12:28:40 +02:00
parent 83b6727dad
commit ec29bdf065
2 changed files with 20 additions and 0 deletions

View File

@ -162,6 +162,11 @@ class FlowDirectionEnumField(obj_fields.AutoTypedField):
AUTO_TYPE = obj_fields.Enum(valid_values=lib_constants.VALID_DIRECTIONS)
class FlowDirectionAndAnyEnumField(obj_fields.AutoTypedField):
AUTO_TYPE = obj_fields.Enum(
valid_values=lib_constants.VALID_DIRECTIONS_AND_ANY)
class IpamAllocationStatusEnumField(obj_fields.AutoTypedField):
AUTO_TYPE = obj_fields.Enum(
valid_values=lib_constants.VALID_IPAM_ALLOCATION_STATUSES)

View File

@ -184,6 +184,21 @@ class FlowDirectionEnumFieldTest(test_base.BaseTestCase, TestField):
self.assertEqual("'%s'" % in_val, self.field.stringify(in_val))
class FlowDirectionAndAnyEnumFieldTest(test_base.BaseTestCase, TestField):
def setUp(self):
super(FlowDirectionAndAnyEnumFieldTest, self).setUp()
self.field = common_types.FlowDirectionAndAnyEnumField()
self.coerce_good_values = [
(val, val) for val in const.VALID_DIRECTIONS_AND_ANY]
self.coerce_bad_values = ['test', '8', 10, []]
self.to_primitive_values = self.coerce_good_values
self.from_primitive_values = self.coerce_good_values
def test_stringify(self):
for in_val, out_val in self.coerce_good_values:
self.assertEqual("'%s'" % in_val, self.field.stringify(in_val))
class DomainNameFieldTest(test_base.BaseTestCase, TestField):
def setUp(self):
super(DomainNameFieldTest, self).setUp()