From 0b5aff95e285210272a427d7c948c97a60ebd6af Mon Sep 17 00:00:00 2001 From: mdipierro Date: Sun, 26 Aug 2012 15:51:15 -0500 Subject: [PATCH] more tests about dal --- VERSION | 2 +- gluon/dal.py | 13 ++++++++++++- gluon/tests/test_dal.py | 20 ++++++++++++++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 69c58d1e..0c3b3a31 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-08-26 14:12:05) dev +Version 2.00.0 (2012-08-26 15:51:11) dev diff --git a/gluon/dal.py b/gluon/dal.py index 8105813e..5f480581 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -39,7 +39,7 @@ Example of usage: >>> # from dal import DAL, Field ### 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) ### 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.name '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 1 >>> db(db.person.name=='Marco').select().first().delete_record() # test delete diff --git a/gluon/tests/test_dal.py b/gluon/tests/test_dal.py index 9d5c085c..4009fc9e 100644 --- a/gluon/tests/test_dal.py +++ b/gluon/tests/test_dal.py @@ -129,6 +129,26 @@ class TestFields(unittest.TestCase): ) self.assertEqual(db.t.insert(a=t0), 1) 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.define_table('t', Field('a', 'time', default='11:30')) t0 = datetime.time(10, 30, 55)