updated test_validators IS_IN_DB
This commit is contained in:
@@ -285,15 +285,16 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IN_DB(db, 'ref_table.person_id', '%(name)s')(george_id)
|
||||
self.assertEqual(rtn, (george_id, None))
|
||||
# Test it works with reference table.field and keyed table
|
||||
db.define_table('ref_person',
|
||||
db.define_table('person_keyed',
|
||||
Field('name'),
|
||||
primarykey=['name'])
|
||||
ret=db.ref_person.insert(name='george')
|
||||
rtn = IS_IN_DB(db, 'ref_person.name')('george')
|
||||
db.person_keyed.insert(name='george')
|
||||
db.person_keyed.insert(name='costanza')
|
||||
rtn = IS_IN_DB(db, 'person_keyed.name')('george')
|
||||
self.assertEqual(rtn, ('george', None))
|
||||
db.define_table('ref_table_field',
|
||||
Field('name'),
|
||||
Field('person_name', 'reference ref_person.name')
|
||||
Field('person_name', 'reference person_keyed.name')
|
||||
)
|
||||
ret = db.ref_table_field.validate_and_insert(name='test reference table.field')
|
||||
self.assertFalse(list(ret.errors))
|
||||
@@ -303,11 +304,37 @@ class TestValidators(unittest.TestCase):
|
||||
vldtr.options()
|
||||
rtn = vldtr('george')
|
||||
self.assertEqual(rtn, ('george', None))
|
||||
# Test it works with list:reference table
|
||||
db.define_table('list_ref_table',
|
||||
Field('name'),
|
||||
Field('person_list', 'list:reference person'))
|
||||
ret = db.list_ref_table.validate_and_insert(name='test list:reference table')
|
||||
self.assertFalse(list(ret.errors))
|
||||
ret = db.list_ref_table.validate_and_insert(name='test list:reference table', person_list=[george_id,costanza_id])
|
||||
self.assertFalse(list(ret.errors))
|
||||
vldtr = IS_IN_DB(db, 'list_ref_table.person_list')
|
||||
vldtr.options()
|
||||
rtn = vldtr([george_id,costanza_id])
|
||||
self.assertEqual(rtn, ([george_id,costanza_id], None))
|
||||
# Test it works with list:reference table.field and keyed table
|
||||
#db.define_table('list_ref_table_field',
|
||||
# Field('name'),
|
||||
# Field('person_list', 'list:reference person_keyed.name'))
|
||||
#ret = db.list_ref_table_field.validate_and_insert(name='test list:reference table.field')
|
||||
#self.assertFalse(list(ret.errors))
|
||||
#ret = db.list_ref_table_field.validate_and_insert(name='test list:reference table.field', person_list=['george','costanza'])
|
||||
#self.assertFalse(list(ret.errors))
|
||||
#vldtr = IS_IN_DB(db, 'list_ref_table_field.person_list')
|
||||
#vldtr.options()
|
||||
#rtn = vldtr(['george','costanza'])
|
||||
#self.assertEqual(rtn, (['george','costanza'], None))
|
||||
db.person.drop()
|
||||
db.category.drop()
|
||||
db.ref_person.drop()
|
||||
db.person_keyed.drop()
|
||||
db.ref_table.drop()
|
||||
db.ref_table_field.drop()
|
||||
db.list_ref_table.drop()
|
||||
#db.list_ref_table_field.drop()
|
||||
|
||||
def test_IS_NOT_IN_DB(self):
|
||||
from gluon.dal import DAL, Field
|
||||
|
||||
Reference in New Issue
Block a user