Example #1
0
    def test_context_billing_email_allowed_for_billing_email(self):
        from pyramid_bimt.views.user import deferred_user_billing_email_validator  # noqa

        schema = SQLAlchemySchemaNode(User)
        self.request.context = User.by_email('*****@*****.**')
        self.request.POST['email'] = '*****@*****.**'

        validator = deferred_user_billing_email_validator(
            None, {'request': self.request})

        self.assertFalse(validator(schema.get('email'), '*****@*****.**'))
Example #2
0
    def test_context_name_allowed_for_name(self):
        from pyramid_bimt.views.group import deferred_group_name_validator

        schema = SQLAlchemySchemaNode(Group)
        self.request.context = Group.by_name('enabled')
        self.request.POST['name'] = 'enabled'

        validator = deferred_group_name_validator(None,
                                                  {'request': self.request})

        self.assertFalse(validator(schema.get('name'), 'enabled'))
Example #3
0
    def test_context_product_id_allowed_for_product_id(self):
        from pyramid_bimt.views.group import deferred_group_product_id_validator  # noqa

        schema = SQLAlchemySchemaNode(Group)
        self.request.context = Group.by_name('enabled')
        self.request.context.product_id = '123'
        self.request.POST['product_id'] = '123'

        validator = deferred_group_product_id_validator(
            None, {'request': self.request})

        self.assertFalse(validator(schema.get('product_id'), '123'))
Example #4
0
from colander import null
from colanderalchemy import SQLAlchemySchemaNode
from deform.widget import RichTextWidget, HiddenWidget, PasswordWidget

from terms.server.schemata import Schema


class Person(Schema):

    name = Column(String())
    surname = Column(String())
    password = Column(String())

PersonSchema = SQLAlchemySchemaNode(Person)

PersonSchema.get('id').widget = HiddenWidget()
PersonSchema.get('_id').widget = HiddenWidget()
PersonSchema.get('ntype').widget = HiddenWidget()


class PasswordWidget(PasswordWidget):

    def deserialize(self, field, pstruct):
        value = super(PasswordWidget, self).deserialize(field, pstruct)
        if isinstance(value, basestring) and len(value) == 60:
            return value
        try:
            return bcrypt.hashpw(value, bcrypt.gensalt())
        except TypeError:
            return value