def test_SimpleFormValidator_doc(): """ Verify SimpleFormValidator preserves the decorated function's docstring. """ BOGUS_DOCSTRING = "blah blah blah" def f(value_dict, state, validator): value_dict['f'] = 99 f.__doc__ = BOGUS_DOCSTRING g = SimpleFormValidator(f) assert f.__doc__ == g.__doc__, "Docstrings don't match!"
import re import pylons from pylons.i18n import ugettext as _ from formencode import Invalid from formencode.schema import SimpleFormValidator from tw.forms.validators import Email from proyectosaptg.model import DBSession, Usuario from proyectosaptg import model __all__ = ['UniqueUserName'] def validate_unique_user_name(value_dict, state, validator): user_prueba = DBSession.query(Usuario).filter_by( username=value_dict['username']) #if user_prueba is not None: return {'user_name': 'The user name already exists.'} UniqueUserName = SimpleFormValidator(validate_unique_user_name)
log = logging.getLogger(__name__) class ShareSchema(Schema): "Validate individual user shares." allow_extra_fields = False user_id = validators.Int(not_empty=True) amount = validators.Number(if_empty=0) def validate_state(value_dict, state, validator): if all(s['amount'] == 0 for s in value_dict['shares']): return {'shares-0.amount': 'Need at least one non-zero share'} ValidateNotAllZero = SimpleFormValidator(validate_state) class ExpenditureSchema(AuthFormSchema): "Validate an expenditure." allow_extra_fields = False pre_validators = [NestedVariables()] spender_id = validators.Int(not_empty=True) amount = model.types.CurrencyValidator(not_empty=True) description = validators.UnicodeString(not_empty=True) date = validators.DateConverter() shares = ForEach(ShareSchema) chained_validators = [ValidateNotAllZero] class SpendController(BaseController):