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}
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()
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')
def test_min_and_max_value_list(self): ''' Assert that a list with MinLengthValidator(x) and MaxLengthValidator(y) cannot be saved with a length less than x or a length greater than y ''' list_of_list_for_min_max = [ ['whoa'], [2,4,0,], [17,], [5,5,5,5,], [5,5,5,5,6,7,8,9,11,12,], ] Schema = create_schema( 'min_max_value_schema', field=IntegerField( list=True, validate=[MinValueValidator(5), MaxValueValidator(15)], list_validate=[MinLengthValidator(5), MaxLengthValidator(7)], ) ) test_row=Schema() for test_list in list_of_list_for_min_max: test_row.field = test_list self.assertRaises(Exception, test_row.save)
def test_validate_min_value_list(self): ''' Assert that a list with MinLengthValidator(n) cannot be saved with a value less than n. ''' list_of_list_for_min = [ ['whoa'], [2,4,0,], [2,3,4,5,], [2,3,4,5,6,7,8,9,11,12,], ] Schema = create_schema( 'min_value_schema', field=IntegerField( list=True, validate=MinValueValidator(5), list_validate=[MinLengthValidator(5), MaxLengthValidator(7)] ) ) test_row = Schema() for test_list in list_of_list_for_min: test_row.field = test_list self.assertRaises(Exception, test_row.save)
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))
def test_validate_integer_list(self): ''' Assert that the field cannot be saved with lists containing any type other than integer ''' test_lists = [ [1.5,2.5,3.5], ['hey','hey',], [datetime.datetime.now(),datetime.datetime.now(),] ] Schema = create_schema( 'integer_list_schema', field=IntegerField( list=True, validate=True, ) ) test_row = Schema() for test_list in test_lists: test_row.field = test_list self.assertRaises(Exception, test_row.save)
class Tag(StoredObject): _id = StringField() count = IntegerField() keyword = ForeignField('keyword')
class Ron(StoredObject): ron_str = StringField() ron_int = IntegerField() ron_now = DateTimeField()
class Player(StoredObject): name = StringField(primary=True) number = IntegerField() rating = FloatField(default=0.0) injured = BooleanField(default=False)