]> git.llucax.com Git - software/pymin.git/blobdiff - pymin/validatedclass.py
Move common validation code to new pymin.validation module (refs #20)
[software/pymin.git] / pymin / validatedclass.py
index 2e596dc9e92e5bec893acbf6b6653d1cbd424165..b94f2b29ca8aa04c4c8a43893aee5dbd96312a63 100644 (file)
@@ -74,7 +74,7 @@ __all__ = ('Field', 'ValidatedClass')
 
 from formencode import Invalid
 from formencode.schema import Schema
 
 from formencode import Invalid
 from formencode.schema import Schema
-from formencode.validators import FancyValidator, OneOf, CIDR, Int
+from formencode.validators import FancyValidator
 
 # FIXME not thread safe (use threadlocal?)
 # This is a counter to preserve the order of declaration of fields (class
 
 # FIXME not thread safe (use threadlocal?)
 # This is a counter to preserve the order of declaration of fields (class
@@ -232,6 +232,9 @@ if __name__ == '__main__':
         name = Field(formencode.validators.String(not_empty=True))
         age = Field(formencode.validators.Int(max=110, if_empty=None,
                                                        if_missing=None))
         name = Field(formencode.validators.String(not_empty=True))
         age = Field(formencode.validators.Int(max=110, if_empty=None,
                                                        if_missing=None))
+        def __init__(self, *args, **kwargs):
+            ValidatedClass.__init__(self, *args, **kwargs)
+            self.a_dict = dict()
         # Some global validation after individual fields validation
         def chained_validator(self, fields, state):
             if 'Jr' in fields['name'] and fields['age'] > 25:
         # Some global validation after individual fields validation
         def chained_validator(self, fields, state):
             if 'Jr' in fields['name'] and fields['age'] > 25:
@@ -253,6 +256,11 @@ if __name__ == '__main__':
                        # Use the order of fields declaration
     assert t.name == 'Graham'
 
                        # Use the order of fields declaration
     assert t.name == 'Graham'
 
+    # we can use regular fields too
+    t.a_dict.update(dict(python=True))
+    assert 'python' in t.a_dict
+    assert t.a_dict['python'] is True
+
     t = Test('Graham', 20)
     assert t.name == 'Graham' and t.age == 20
 
     t = Test('Graham', 20)
     assert t.name == 'Graham' and t.age == 20