From ecc6e5dc5ec6f53d21b770db60dcb3a92664c9f3 Mon Sep 17 00:00:00 2001 From: Niphlod Date: Sun, 14 Sep 2014 16:01:22 +0200 Subject: [PATCH] added more tests for json Field --- gluon/tests/test_dal.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/gluon/tests/test_dal.py b/gluon/tests/test_dal.py index 8c95b7af..e1147534 100644 --- a/gluon/tests/test_dal.py +++ b/gluon/tests/test_dal.py @@ -129,6 +129,7 @@ class TestFields(unittest.TestCase): isinstance(f.formatter(datetime.datetime.now()), str) def testRun(self): + """Test all field types and their return values""" db = DAL(DEFAULT_URI, check_reserved=['all']) for ft in ['string', 'text', 'password', 'upload', 'blob']: db.define_table('tt', Field('aa', ft, default='')) @@ -148,8 +149,22 @@ class TestFields(unittest.TestCase): self.assertEqual(db().select(db.tt.aa)[0].aa, True) db.tt.drop() db.define_table('tt', Field('aa', 'json', default={})) - self.assertEqual(db.tt.insert(aa={}), 1) - self.assertEqual(db().select(db.tt.aa)[0].aa, {}) + # test different python objects for correct serialization in json + objs = [ + {'a' : 1, 'b' : 2}, + [1, 2, 3], + 'abc', + True, + False, + None, + 11, + 14.3, + long(11) + ] + for obj in objs: + rtn_id = db.tt.insert(aa=obj) + rtn = db(db.tt.id == rtn_id).select().first().aa + self.assertEqual(obj, rtn) db.tt.drop() db.define_table('tt', Field('aa', 'date', default=datetime.date.today()))