def sort_required_keys(schema): for key, value in iteritems(schema): if key == "required" and isinstance(value, list) and all(isinstance(v, string_types) for v in value): value.sort() elif isinstance(value, dict): sort_required_keys(value) elif isinstance(value, collections.Iterable): for v in value: if isinstance(v, dict): sort_required_keys(v)
def sort_required_keys(schema): for key, value in iteritems(schema): if (key == 'required' and isinstance(value, list) and all(isinstance(v, string_types) for v in value)): value.sort() elif isinstance(value, dict): sort_required_keys(value) elif isinstance(value, collections.Iterable): for v in value: if isinstance(v, dict): sort_required_keys(v)
def test_collect_fields_and_options(): with mock.patch.object(DocumentMeta, 'options_container', wraps=OptionsStub): class ParentOne(Document): a = fields.StringField() b = fields.IntField() c = fields.NumberField() class Options(object): a = 1 b = 1 c = 1 class ParentTwo(Document): b = fields.DictField() class Options: b = 2 d = 2 bases = (ParentTwo, ParentOne) attrs = { 'c': fields.BooleanField(), 'd': fields.BooleanField(), } fields_dict = DocumentMeta.collect_fields(bases, attrs) assert fields_dict == { 'a': ParentOne.a, 'b': ParentTwo.b, 'c': attrs['c'], 'd': attrs['d'], } options_dict = DocumentMeta.collect_options(bases, attrs) for expected_key, expected_value in iteritems({ 'a': 1, 'b': 2, 'c': 1, 'd': 2 }): assert options_dict[expected_key] == expected_value
def sort_required_keys(schema): for key, value in iteritems(schema): if key == 'required' and isinstance(value, list): value.sort() elif isinstance(value, dict): sort_required_keys(value)