Example #1
0
    def test_get_all_fields(self):
        class Model(dict):
            field1 = Field(required=True)
            field2 = Field(default=None)

        for field_name, field in get_all_fields(Model):
            if field_name == "field1":
                self.assertEqual(True, field.required)
                self.assertEqual(EMPTY, field.default)
            else:
                self.assertEqual(None, field.default)
                self.assertEqual(False, field.required)
Example #2
0
File: model.py Project: nod/norm
    def __new__(cls, *args, **kwargs):
        # caching fields and required fields on the model
        # so we don't have to discover every time.
        if not hasattr(cls, "_fields"):
            fields = []
            required_fields = []
            for field_name, field in get_all_fields(cls):
                fields.append(field_name)
                if field.required:
                    required_fields.append(field_name)
            cls._fields = set(fields)
            cls._required_fields = set(required_fields)

        instance = super(Model, cls).__new__(cls)
        instance._data = {}
        populate_defaults(instance)
        return instance