Example #1
0
class Tag(StoredObject):
    _id = StringField(primary=True)
    date_created = DateTimeField(validate=True)
    date_modified = DateTimeField(validate=True, auto_now=True)
    value = StringField(default='default', validate=MinLengthValidator(5))
    keywords = StringField(default=['keywd1', 'keywd2'], validate=MinLengthValidator(5), list=True)
    _meta = {'optimistic':True}
Example #2
0
class Blog(StoredObject):
    _id = StringField(primary=True, optimistic=True)
    body = StringField(default='blog body')
    title = StringField(default='asdfasdfasdf', validate=MinLengthValidator(8))
    tag = ForeignField('Tag', backref='tagged')
    tags = ForeignField('Tag', list=True, backref='taggeds')
    _meta = {'optimistic': True}
Example #3
0
class Team(StoredObject):
    name = StringField(primary=True)
    owner = ForeignField('Manager', backref='owned')
    wins = IntegerField(list=True)
    playoffs = BooleanField(default=None, list=True)
    schedule = StringField(list=True)
    players = ForeignField('Player', list=True, backref='plays_for')
Example #4
0
class Tag(StoredObject):
    value = StringField(primary=True)
    count = StringField(default='c', validate=True)
    misc = StringField()
    misc2 = StringField()
    # created = DateTimeField(validate=True)
    # modified = DateTimeField(validate=True, auto_now=True)
    keywords = StringField(
        default=['keywd1', 'keywd2'],
        validate=[MinLengthValidator(5),
                  MaxLengthValidator(10)],
        list=True)
    mybool = BooleanField(default=False)
    myint = IntegerField()
    myints = IntegerField(default=[1, 2, 3], list=True)
    myfloat = FloatField()
Example #5
0
class TestSchema(StoredObject):

    _id = StringField(primary=True)

    # Simple fields

    intfield = IntegerField(list=False, validate=True)
    floatfield = FloatField(list=False, validate=True)
    boolfield = BooleanField(list=False, validate=True)
    datetimefield = DateTimeField(list=False, validate=True)
    stringfield = StringField(list=False, validate=True)
    regexfield = StringField(list=False, validate=RegexValidator('^foo$'))
    urlfield = StringField(list=False, validate=URLValidator())

    int_min_field = IntegerField(validate=MinValueValidator(3))
    int_max_field = IntegerField(validate=MaxValueValidator(15))
    string_min_field = StringField(validate=MinLengthValidator(3))
    string_max_field = StringField(validate=MaxLengthValidator(15))

    # List fields

    # int_list = IntegerField(list=True, validate=MinValueValidator(3))
    # float_list = FloatField(list=True, validate=True)
    # bool_list = BooleanField(list=True, validate=True)
    # datetime_list = DateTimeField(list=True, default=[])
    # string_list = StringField(list=True, validate=True)

    _meta = {'optimistic' : True}
Example #6
0
class Sheila(StoredObject):

    _id = StringField(primary=True)
    _meta = {'optimistic': True}

    # Simple fields
    sheila_str = StringField(default='sheila', validate=True, required=True)
    sheila_int = IntegerField(default=7, validate=MaxValueValidator(9))
    sheila_now = DateTimeField()
    sheila_url = StringField(validate=URLValidator())

    # List fields
    sheila_strs = StringField(list=True,
                              validate=MinLengthValidator(5),
                              list_validate=MinLengthValidator(3))
    sheila_nows = DateTimeField(list=True)  #, default=[])
    sheila_urls = StringField(
        list=True,
        validate=[URLValidator(), MinLengthValidator(20)],
        list_validate=MinLengthValidator(2))
    sheila_ints = IntegerField(list=True,
                               validate=MinValueValidator(3),
                               list_validate=MinLengthValidator(2))
Example #7
0
def create_schema(schema_name, **fields):

    fields['_id'] = StringField(primary=True)
    fields['_meta'] = {'optimistic' : True}

    schema = type(
        schema_name,
        (StoredObject,),
        fields
    )

    schema.set_storage(PickleStorage(schema_name))

    return schema
Example #8
0
    def test_validate_max_length_list(self):
        '''
        Assert that a list with MaxLengthValidator(n) cannot
        be saved with a length greater than n.
        '''
        list_of_items_for_max = [
            [1,2,3,4,5,],
            ['whoaaaaa','whoaaaaa',],
            ['awesome','aweseome','awesome','awesome',],
            ['awesome','awesome','awesome','awesome','awesome','awesome','awesome','awesome',],
        ]

        Schema = create_schema(
            'max_length_schema',
            field=StringField(
                list=True,
                validate=MaxLengthValidator(7),
                list_validate=[MinLengthValidator(5), MaxLengthValidator(7)]
            )
        )
        # import pdb; pdb.set_trace()
        test_row=Schema()
Example #9
0
    def test_validate_string_list(self):
        '''
        Assert that the field cannot be saved with lists containing any type other than string
        '''
        test_lists = [
            [1, 2, 3,],
            [4.0, 4.0,],
            [datetime.datetime.now(), datetime.datetime.now(),],
        ]

        Schema = create_schema(
            'string_list_schema',
            field=StringField(
                list=True,
                validate=True,
            )
        )

        test_row = Schema()
        for test_list in test_lists:
            test_row.field = test_list
            self.assertRaises(Exception, test_row.save)
Example #10
0
    def test_validate_min_length_list(self):
        '''
        Assert that a list with MinLengthValidator(n) cannot
        be saved with a length less than n.
        '''
        list_of_items_for_min = [
            [1,2,3,4,5,],
            ['whoa','whoa',],
            ['awesome','awesome','awesome','awesome',],
            ['awesome','awesome','awesome','awesome','awesome','awesome','awesome','awesome',],
        ]

        Schema = create_schema(
            'min_length_schema',
            field=StringField(
                list=True,
                validate=MinLengthValidator(5),
                list_validate=[MinLengthValidator(5), MaxLengthValidator(7)]
            )
        )
        test_row=Schema()
        for test_list in list_of_items_for_min:
            test_row.field = test_list
            self.assertRaises(Exception, test_row.save)
class Blog(CachedObject):
    _id = StringField()
    title = StringField()
    tag = ForeignField(
        'Tag', backref='tagged'
    )  # when you init, add an "on_after_save" to that class, even if it's not a cached object
Example #12
0
class Ron(StoredObject):

    ron_str = StringField()
    ron_int = IntegerField()
    ron_now = DateTimeField()
class Keyword(StoredObject):
    _id = StringField()
Example #14
0
class Player(StoredObject):
    name = StringField(primary=True)
    number = IntegerField()
    rating = FloatField(default=0.0)
    injured = BooleanField(default=False)
Example #15
0
class Manager(StoredObject):
    name = StringField(primary=True)
    players_managed = ForeignField('Player', list=True, backref='managed_by')
class Cache(StoredObject):
    _id = StringField()
    content = DictionaryField(list=True)
 def __init__(self, **kwargs):
     super(CachedObject, self).__init__(**kwargs)
     # tells are foreign keys to pay attention, even if no backrefs?
     self._add_field('_cache_id', StringField())
     self._cache_id = '{}:{}'.format(self._name, self._primary_key)
     self._cache = Cache(_id=self._cache_id)
Example #18
0
class User(StoredObject):
    name = StringField(primary=True)
class Tag(StoredObject):
    _id = StringField()
    count = IntegerField()
    keyword = ForeignField('keyword')
Example #20
0
class Blog(StoredObject):
    title = StringField(primary=True)
    user = ForeignField('user')