added more tests for json Field
This commit is contained in:
+17
-2
@@ -129,6 +129,7 @@ class TestFields(unittest.TestCase):
|
|||||||
isinstance(f.formatter(datetime.datetime.now()), str)
|
isinstance(f.formatter(datetime.datetime.now()), str)
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
|
"""Test all field types and their return values"""
|
||||||
db = DAL(DEFAULT_URI, check_reserved=['all'])
|
db = DAL(DEFAULT_URI, check_reserved=['all'])
|
||||||
for ft in ['string', 'text', 'password', 'upload', 'blob']:
|
for ft in ['string', 'text', 'password', 'upload', 'blob']:
|
||||||
db.define_table('tt', Field('aa', ft, default=''))
|
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)
|
self.assertEqual(db().select(db.tt.aa)[0].aa, True)
|
||||||
db.tt.drop()
|
db.tt.drop()
|
||||||
db.define_table('tt', Field('aa', 'json', default={}))
|
db.define_table('tt', Field('aa', 'json', default={}))
|
||||||
self.assertEqual(db.tt.insert(aa={}), 1)
|
# test different python objects for correct serialization in json
|
||||||
self.assertEqual(db().select(db.tt.aa)[0].aa, {})
|
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.tt.drop()
|
||||||
db.define_table('tt', Field('aa', 'date',
|
db.define_table('tt', Field('aa', 'date',
|
||||||
default=datetime.date.today()))
|
default=datetime.date.today()))
|
||||||
|
|||||||
Reference in New Issue
Block a user