示例#1
0
 def __init__(self, min_items=0, unique=True, nullable=False, default=None):
     if default is None:
         default = []
     self.AUTO_TYPE = IdentityList(fields.String(), min_items=min_items,
                                   unique=unique)
     super(IdentityListField, self).__init__(nullable=nullable,
                                             default=default)
示例#2
0
    def test_get_schema(self):
        self.assertEqual(
            {
                'type': ['array'],
                'items': {
                    'readonly': False,
                    'type': ['string'],
                },
                'minItems': 0,
                'uniqueItems': True
            }, self.field.get_schema())

        sot = senlin_fields.IdentityList(fields.String(),
                                         min_items=2,
                                         unique=False,
                                         nullable=True)
        self.assertEqual(
            {
                'type': ['array', 'null'],
                'items': {
                    'readonly': False,
                    'type': ['string'],
                },
                'minItems': 2,
                'uniqueItems': False
            }, sot.get_schema())
示例#3
0
    def test_init_with_params(self):
        sot = senlin_fields.IdentityList(fields.String(),
                                         min_items=1,
                                         unique=False)

        self.assertEqual(1, sot.min_items)
        self.assertFalse(sot.unique_items)
示例#4
0
    def setUp(self):
        super(TestUniqueDict, self).setUp()

        self.field = senlin_fields.UniqueDict(fields.String())
        self.coerce_good_values = [({"k": "v"}, {"k": "v"})]
        self.coerce_bad_values = ['{"K": "v"]']
        self.to_primitive_values = [({"k": "v"}, {"k": "v"})]
        self.from_primitive_values = [({"k": "v"}, {"k": "v"})]
示例#5
0
    def test_coerce_not_unique_okay(self):
        sot = senlin_fields.IdentityList(fields.String(), min_items=1,
                                         unique=False)
        obj = mock.Mock()

        # not unique is okay
        res = sot.coerce(obj, 'attr', ['abc', 'abc'])
        self.assertEqual(['abc', 'abc'], res)
示例#6
0
    def setUp(self):
        super(TestIdentityList, self).setUp()

        self.field = senlin_fields.IdentityList(fields.String())

        self.coerce_good_values = [(['abc'], ['abc'])]
        self.coerce_bad_values = [123]
        self.to_primitive_values = self.coerce_good_values[0:1]
        self.from_primitive_values = self.coerce_good_values[0:1]
示例#7
0
    def test_coerce_too_short(self):
        sot = senlin_fields.IdentityList(fields.String(),
                                         min_items=2,
                                         unique=False)
        obj = mock.Mock()

        # violating min_items
        ex = self.assertRaises(ValueError, sot.coerce, obj, 'attr', [])

        self.assertEqual("Value for 'attr' must have at least 2 item(s).",
                         six.text_type(ex))
示例#8
0
class ListOfListsOfStringsField(AutoTypedField):
    AUTO_TYPE = List(List(fields.String()))
示例#9
0
class SetOfStringsField(AutoTypedField):
    AUTO_TYPE = Set(fields.String())
示例#10
0
class DictOfListOfStringsField(AutoTypedField):
    AUTO_TYPE = Dict(List(fields.String()))
示例#11
0
class DictOfDictOfStringsField(fields.AutoTypedField):
    AUTO_TYPE = fields.Dict(fields.Dict(fields.String(), nullable=True))
示例#12
0
class DictOfDictOfStringsField(fields.AutoTypedField):
    AUTO_TYPE = fields.Dict(fields.Dict(fields.String()))
示例#13
0
class NodeReplaceMapField(fields.AutoTypedField):

    AUTO_TYPE = UniqueDict(fields.String())