예제 #1
0
파일: base.py 프로젝트: Ma233/olo
class Ttt(BaseModel):
    id = Field(int, primary_key=True, output=str)
    time = Field(
        datetime,
        name='created_at',
        default=datetime.now
    )
예제 #2
0
파일: base.py 프로젝트: yetone/olo
class Ttt(BaseModel):
    id = Field(int,
               primary_key=True,
               output=str,
               auto_increment=True,
               length=11)
    time = Field(datetime, name='created_at', default=datetime.now)
예제 #3
0
파일: base.py 프로젝트: yetone/olo
class Lala(BaseModel):
    id = Field(int,
               primary_key=True,
               output=str,
               auto_increment=True,
               length=11)
    name = Field(str, length=255)
    age = Field(int, length=11)
예제 #4
0
        class Foo(BaseModel):
            id = Field(int, primary_key=True)
            name = Field(str, default='')
            age_str = Field(str, noneable=True)

            @declared_attr
            def age(cls):
                return Field(int)

            @declared_attr
            def key(cls):
                return Field(str, default='key')
예제 #5
0
        class F_O_O(BaseModel):
            id = Field(int, primary_key=True)
            name = Field(str, default='')
            age_str = Field(str, noneable=True)
            key = Field(str, noneable=True)

            @declared_attr
            def age(cls):
                return Field(int)

            @declared_attr
            def __table_name__(cls):
                return cls.__name__.lower().replace('_', '')
예제 #6
0
파일: base.py 프로젝트: yetone/olo
class Foo(BaseModel):
    id = Field(int, primary_key=True, auto_increment=True, length=11)
    name = Field(str, noneable=True, default='foo', length=255)
    age = Field(int, noneable=True, default=1, length=11)
    age_str = Field(int, noneable=True, default=1, output=str, length=11)
    key = Field(str, noneable=True, default=lambda: str(uuid4()), length=255)
    prop1 = DbField(list, noneable=True)
    boolean = Field(bool, default=False)
    test_getter = Field(int, default=0)
    test_setter = Field(int, default=0)

    @test_getter.getter
    def test_getter(self, value):
        return value + 1

    @test_setter.setter
    def test_setter(self, value):
        return value - 1

    __unique_keys__ = ((name, 'age'), ('key', ))

    __index_keys__ = ('age', )

    def get_uuid(self):
        return '/foo/{}'.format(self.id)
예제 #7
0
파일: base.py 프로젝트: onesafe/olo
class Foo(BaseModel):
    id = Field(int, primary_key=True, auto_increment=True, length=11)
    name = Field(str, noneable=True, default='foo', length=255)
    age = Field(int, noneable=True, default=1, length=11)
    age_str = Field(int, noneable=True, default=1, output=str, length=11)
    key = Field(str, noneable=True, default=lambda: str(uuid4()), length=255)
    prop1 = DbField(list, noneable=True)

    __unique_keys__ = (('name', 'age'), ('key', ))

    __index_keys__ = ('age', )

    def get_uuid(self):
        return '/foo/{}'.format(self.id)
예제 #8
0
 def test_encrypt(self):
     dummy = Dummy.create(**attrs)
     self.assertEqual(dummy.password, attrs['password'])
     self.assertEqual(Dummy.get(dummy.id).password, attrs['password'])
     self.assertEqual(Dummy.gets([dummy.id])[0].password, attrs['password'])
     not_raw = Dummy.query('password').filter(id=dummy.id).one()
     self.assertEqual(not_raw, attrs['password'])
     raw = Dummy.query('password', raw=True).filter(id=dummy.id).one()
     self.assertEqual(raw, to_str(encrypt(attrs['password'], Dummy.AES_KEY)))
     dummy.update(password='******')
     self.assertEqual(dummy.password, '123')
     dummy = Dummy.get(dummy.id)
     self.assertEqual(dummy.password, '123')
     raw = Dummy.query('password', raw=True).filter(id=dummy.id).one()
     self.assertEqual(raw, to_str(encrypt('123', Dummy.AES_KEY)))
     dummy.password = '******'
     dummy.save()
     dummy = Dummy.get(dummy.id)
     self.assertEqual(dummy.password, '456')
     old_password = Dummy.password
     try:
         Dummy.password = Field(
             str,
             name='password',
             input=lambda x: 'encrypted',
             output=lambda x: 'decrypted'
         )
         dummy = Dummy.create(**attrs)
         self.assertEqual(dummy.password, 'decrypted')
         self.assertEqual(
             Dummy.query('password', raw=True).filter(id=dummy.id).one(),
             'encrypted'
         )
     finally:
         Dummy.password = old_password
예제 #9
0
파일: base.py 프로젝트: onesafe/olo
class Bar(BaseModel):
    name = Field(str, primary_key=True, length=255)
    age = Field(int, default=1, length=11)
    xixi = Field(str, name='key', default=lambda: str(uuid4()), length=255)
    word = Field(str, noneable=True, length=255)
    prop1 = DbField(list, noneable=True)

    __index_keys__ = ((), ('xixi', 'age'), 'age')

    __order_bys__ = (
        'xixi',
        ('xixi', 'age'),
        ('-age', 'xixi'),
    )

    def get_uuid(self):
        return '/foo/{}'.format(self.id)
예제 #10
0
class _Dummy(Dummy):
    class Options:
        foo = 'bar'

    name = Field(int)

    @classmethod
    def validate_name(cls, name):
        if name > 1000:
            raise ValidationError('%s more than 1000' % name)
예제 #11
0
 def test_pickle(self):
     dummy = Dummy.create(**attrs)
     d = pickle.dumps(dummy, -1)
     self.assertEqual(dummy.password, pickle.loads(d).password)
     dummy = Dummy.get(dummy.id)
     d = pickle.dumps(dummy, -1)
     self.assertEqual(dummy.password, pickle.loads(d).password)
     _dummy = Dummy.cache.get(dummy.id)
     _dummy = Dummy.cache.get(dummy.id)
     self.assertEqual(dummy.password, _dummy.password)
     pickle.dumps(Dummy.password)
     f = Field(str,
               input=lambda x: 'encrypted',
               output=lambda x: 'decrypted')
     pickle.dumps(f)
     pickle.dumps(Dummy.created_at)
예제 #12
0
 def age(cls):
     return Field(int)
예제 #13
0
 def key(cls):
     return Field(str, default='key')
예제 #14
0
파일: base.py 프로젝트: yetone/olo
class Dummy(BaseModel):
    id = Field(int, primary_key=True, length=11, auto_increment=True)
    name = Field(str,
                 noneable=True,
                 default='dummy',
                 length=255,
                 charset='utf8mb4')
    age = Field(int,
                default=12,
                on_update=lambda x: x.__class__.age + 1,
                length=11)
    password = Field(str, noneable=True, encrypt=True, length=511)
    flag = Field(int, default=0, noneable=True, choices=[0, 1, 2], length=5)
    tags = Field([str], default=[])
    payload = Field({str: [int]}, noneable=True, default={})
    foo = Field(int, noneable=True, length=11)
    dynasty = Field(str, default='现代', length=4, charset='utf8mb4')
    dynasty1 = Field(str, noneable=True, length=4)
    gender = Field(Gender, default=Gender.FEMALE)
    created_at = Field(datetime, default=datetime.now)
    updated_at = Field(datetime, default=datetime.now, on_update=datetime.now)
    created_date = Field(date, default=date.today)
    prop1 = DbField([str], noneable=True)
    count = DbField(int,
                    default=0,
                    choices=range(30),
                    on_update=lambda x: x.count + 3)
    db_dt = DbField(datetime, noneable=True)
    count1 = DbField(int, noneable=True)

    def get_uuid(self):
        return '/dummy/{}'.format(self.id)

    def after_update(self):
        after_update()

    def before_update(self, **attrs):
        before_update()

    @classmethod
    def before_create(cls, **attrs):
        before_create()

    @classmethod
    def after_create(cls, inst):
        after_create()
예제 #15
0
파일: test_json.py 프로젝트: yetone/olo
class JSONModel(BaseModel):
    id = Field(int, primary_key=True, auto_increment=True)
    payload = JSONField()
    arr = JSONField(default=['a'])
예제 #16
0
파일: base.py 프로젝트: Ma233/olo
class Lala(BaseModel):
    id = Field(int, primary_key=True, output=str)
    name = Field(str)
    age = Field(int)
예제 #17
0
파일: olo_models.py 프로젝트: yetone/olo
class Ben(BaseModel):
    id = Field(int, primary_key=True)
    name = Field(str)
    age = Field(int)
    key = Field(str)
예제 #18
0
파일: test_enum.py 프로젝트: yetone/olo
class EnumModel(BaseModel):
    id = Field(int, primary_key=True, auto_increment=True)
    gender = Field(Gender, default=Gender.FEMALE)