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)
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())
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)
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"})]
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)
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]
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))
class ListOfListsOfStringsField(AutoTypedField): AUTO_TYPE = List(List(fields.String()))
class SetOfStringsField(AutoTypedField): AUTO_TYPE = Set(fields.String())
class DictOfListOfStringsField(AutoTypedField): AUTO_TYPE = Dict(List(fields.String()))
class DictOfDictOfStringsField(fields.AutoTypedField): AUTO_TYPE = fields.Dict(fields.Dict(fields.String(), nullable=True))
class DictOfDictOfStringsField(fields.AutoTypedField): AUTO_TYPE = fields.Dict(fields.Dict(fields.String()))
class NodeReplaceMapField(fields.AutoTypedField): AUTO_TYPE = UniqueDict(fields.String())