more tests about dal
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-08-26 14:12:05) dev
|
Version 2.00.0 (2012-08-26 15:51:11) dev
|
||||||
|
|||||||
+12
-1
@@ -39,7 +39,7 @@ Example of usage:
|
|||||||
>>> # from dal import DAL, Field
|
>>> # from dal import DAL, Field
|
||||||
|
|
||||||
### create DAL connection (and create DB if it doesn't exist)
|
### create DAL connection (and create DB if it doesn't exist)
|
||||||
>>> db = DAL(('mysql://a:b@localhost/x', 'sqlite://storage.sqlite'),
|
>>> db = DAL(('sqlite://storage.sqlite','mysql://a:b@localhost/x'),
|
||||||
... folder=None)
|
... folder=None)
|
||||||
|
|
||||||
### define a table 'person' (create/alter as necessary)
|
### define a table 'person' (create/alter as necessary)
|
||||||
@@ -9055,6 +9055,17 @@ def test_all():
|
|||||||
>>> me = db(db.person.id==person_id).select()[0] # test select
|
>>> me = db(db.person.id==person_id).select()[0] # test select
|
||||||
>>> me.name
|
>>> me.name
|
||||||
'Massimo'
|
'Massimo'
|
||||||
|
>>> db.person[2].name
|
||||||
|
'Massimo'
|
||||||
|
>>> db.person(2).name
|
||||||
|
'Massimo'
|
||||||
|
>>> db.person(name='Massimo').name
|
||||||
|
'Massimo'
|
||||||
|
>>> db.person(db.person.name=='Massimo').name
|
||||||
|
'Massimo'
|
||||||
|
>>> row = db.person[2]
|
||||||
|
>>> row.name == row['name'] == row['person.name'] == row('person.name')
|
||||||
|
True
|
||||||
>>> db(db.person.name=='Massimo').update(name='massimo') # test update
|
>>> db(db.person.name=='Massimo').update(name='massimo') # test update
|
||||||
1
|
1
|
||||||
>>> db(db.person.name=='Marco').select().first().delete_record() # test delete
|
>>> db(db.person.name=='Marco').select().first().delete_record() # test delete
|
||||||
|
|||||||
@@ -129,6 +129,26 @@ class TestFields(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(db.t.insert(a=t0), 1)
|
self.assertEqual(db.t.insert(a=t0), 1)
|
||||||
self.assertEqual(db().select(db.t.a)[0].a, t0)
|
self.assertEqual(db().select(db.t.a)[0].a, t0)
|
||||||
|
|
||||||
|
## Row APIs
|
||||||
|
row = db().select(db.t.a)[0]
|
||||||
|
self.assertEqual(db.t[1].a,t0)
|
||||||
|
self.assertEqual(db.t['a'],db.t.a)
|
||||||
|
self.assertEqual(db.t(1).a,t0)
|
||||||
|
self.assertTrue(db.t(1,a=None)==None)
|
||||||
|
self.assertFalse(db.t(1,a=t0)==None)
|
||||||
|
self.assertEqual(row.a,t0)
|
||||||
|
self.assertEqual(row['a'],t0)
|
||||||
|
self.assertEqual(row['t.a'],t0)
|
||||||
|
self.assertEqual(row('t.a'),t0)
|
||||||
|
|
||||||
|
## Lazy and Virtual fields
|
||||||
|
db.t.b = Field.Virtual(lambda row: row.t.a)
|
||||||
|
db.t.c = Field.Lazy(lambda row: row.t.a)
|
||||||
|
row = db().select(db.t.a)[0]
|
||||||
|
self.assertEqual(row.b,t0)
|
||||||
|
self.assertEqual(row.c(),t0)
|
||||||
|
|
||||||
db.t.drop()
|
db.t.drop()
|
||||||
db.define_table('t', Field('a', 'time', default='11:30'))
|
db.define_table('t', Field('a', 'time', default='11:30'))
|
||||||
t0 = datetime.time(10, 30, 55)
|
t0 = datetime.time(10, 30, 55)
|
||||||
|
|||||||
Reference in New Issue
Block a user