Esempio n. 1
0
    def setUp(self):
        from block.form.validation import validation_repository_factory
        validations = validation_repository_factory()

        ## define validation
        @validations.config(UserSchema, "name", positionals=["db"])
        def name_conflict_validation(data, db):
            if data["name"] in db:
                raise NameConflict(data["name"])
        self.repository = validations
Esempio n. 2
0
    def test_it(self):
        from block.form.validation import validation_repository_factory
        repository = validation_repository_factory()
        mark = object()

        self.assertEqual(len(repository[mark].validators), 0)
        self._add_validation(repository, mark)
        self.assertEqual(len(repository[mark].validators), 1)
        self._add_validation(repository, mark)
        self.assertEqual(len(repository[mark].validators), 1)
        self._add_validation(repository, mark)
        self.assertEqual(len(repository[mark].validators), 1)
Esempio n. 3
0
    def setUp(self):
        self.config = testing.setUp(autocommit=False)
        self.config.include("block.form")

        from block.form.validation.core import AppendListErrorControl
        error_control = AppendListErrorControl({NameConflict: "conflict. {}"})
        self.config.block_set_error_control(error_control)

        from block.form.validation import validation_repository_factory
        validations = validation_repository_factory()
        self.config.block_set_validation_repository(validations)

        ## define validation
        @validations.config(UserSchema, "name", positionals=["db"])
        def name_conflict_validation(data, db):
            if data["name"] in db:
                raise NameConflict(data["name"])
        self.repository = validations
        self.config.commit()
Esempio n. 4
0
# -*- coding:utf-8 -*-
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

import sqlalchemy as sa
import sqlalchemy.orm as orm
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime
from block.form.validation import validation_repository_factory
Session = orm.sessionmaker()
Base = declarative_base()
validation = validation_repository_factory()

class User(Base):
    __tablename__ = "users"
    id = sa.Column(sa.Integer(), primary_key=True, nullable=False)
    name = sa.Column(sa.String(255), unique=True, nullable=False)
    created_at = sa.Column(sa.DateTime, default=datetime.now)
    updated_at = sa.Column(sa.DateTime, onupdate=datetime.now, default=datetime.now)

from pyramid.config import Configurator

def setup_database(config):
    # engine = sa.create_engine('sqlite://', echo=True)
    engine = sa.create_engine('sqlite://')
    Session.configure(bind=engine, autoflush=False)
    Base.metadata.bind = engine
    Base.metadata.create_all()

def session_factory(request):