more tests, general cleanup
This commit is contained in:
@@ -13,6 +13,7 @@ fix_sys_path(__file__)
|
|||||||
|
|
||||||
from storage import Storage
|
from storage import Storage
|
||||||
from cache import CacheInRam, CacheOnDisk, Cache
|
from cache import CacheInRam, CacheOnDisk, Cache
|
||||||
|
from gluon.dal import DAL, Field
|
||||||
|
|
||||||
oldcwd = None
|
oldcwd = None
|
||||||
|
|
||||||
@@ -30,6 +31,11 @@ def tearDownModule():
|
|||||||
if oldcwd:
|
if oldcwd:
|
||||||
os.chdir(oldcwd)
|
os.chdir(oldcwd)
|
||||||
oldcwd = None
|
oldcwd = None
|
||||||
|
try:
|
||||||
|
os.unlink('dummy.db')
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TestCache(unittest.TestCase):
|
class TestCache(unittest.TestCase):
|
||||||
@@ -107,7 +113,34 @@ class TestCache(unittest.TestCase):
|
|||||||
cache.clear(regex=r'a*')
|
cache.clear(regex=r'a*')
|
||||||
self.assertEqual(cache('a1', lambda: 2, 0), 2)
|
self.assertEqual(cache('a1', lambda: 2, 0), 2)
|
||||||
self.assertEqual(cache('a2', lambda: 3, 100), 3)
|
self.assertEqual(cache('a2', lambda: 3, 100), 3)
|
||||||
return
|
|
||||||
|
def testDALcache(self):
|
||||||
|
s = Storage({'application': 'admin',
|
||||||
|
'folder': 'applications/admin'})
|
||||||
|
cache = Cache(s)
|
||||||
|
db = DAL(check_reserved=['all'])
|
||||||
|
db.define_table('t_a', Field('f_a'))
|
||||||
|
db.t_a.insert(f_a='test')
|
||||||
|
db.commit()
|
||||||
|
a = db(db.t_a.id > 0).select(cache=(cache.ram, 60), cacheable=True)
|
||||||
|
b = db(db.t_a.id > 0).select(cache=(cache.ram, 60), cacheable=True)
|
||||||
|
self.assertEqual(a.as_csv(), b.as_csv())
|
||||||
|
c = db(db.t_a.id > 0).select(cache=(cache.disk, 60), cacheable=True)
|
||||||
|
d = db(db.t_a.id > 0).select(cache=(cache.disk, 60), cacheable=True)
|
||||||
|
self.assertEqual(c.as_csv(), d.as_csv())
|
||||||
|
self.assertEqual(a.as_csv(), c.as_csv())
|
||||||
|
self.assertEqual(b.as_csv(), d.as_csv())
|
||||||
|
e = db(db.t_a.id > 0).select(cache=(cache.disk, 60))
|
||||||
|
f = db(db.t_a.id > 0).select(cache=(cache.disk, 60))
|
||||||
|
self.assertEqual(e.as_csv(), f.as_csv())
|
||||||
|
self.assertEqual(a.as_csv(), f.as_csv())
|
||||||
|
g = db(db.t_a.id > 0).select(cache=(cache.ram, 60))
|
||||||
|
h = db(db.t_a.id > 0).select(cache=(cache.ram, 60))
|
||||||
|
self.assertEqual(g.as_csv(), h.as_csv())
|
||||||
|
self.assertEqual(a.as_csv(), h.as_csv())
|
||||||
|
db.t_a.drop()
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
setUpModule() # pre-python-2.7
|
setUpModule() # pre-python-2.7
|
||||||
|
|||||||
+16
-1
@@ -4,6 +4,7 @@
|
|||||||
Unit tests for gluon.dal
|
Unit tests for gluon.dal
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
from fix_path import fix_sys_path
|
from fix_path import fix_sys_path
|
||||||
|
|
||||||
@@ -12,8 +13,15 @@ fix_sys_path(__file__)
|
|||||||
|
|
||||||
from gluon.dal import DAL, Field
|
from gluon.dal import DAL, Field
|
||||||
|
|
||||||
|
def tearDownModule():
|
||||||
|
try:
|
||||||
|
os.unlink('dummy.db')
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TestDALSubclass(unittest.TestCase):
|
class TestDALSubclass(unittest.TestCase):
|
||||||
|
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
from gluon.serializers import custom_json, xml
|
from gluon.serializers import custom_json, xml
|
||||||
from gluon import sqlhtml
|
from gluon import sqlhtml
|
||||||
@@ -22,19 +30,26 @@ class TestDALSubclass(unittest.TestCase):
|
|||||||
self.assertEqual(db.serializers['xml'], xml)
|
self.assertEqual(db.serializers['xml'], xml)
|
||||||
self.assertEqual(db.representers['rows_render'], sqlhtml.represent)
|
self.assertEqual(db.representers['rows_render'], sqlhtml.represent)
|
||||||
self.assertEqual(db.representers['rows_xml'], sqlhtml.SQLTABLE)
|
self.assertEqual(db.representers['rows_xml'], sqlhtml.SQLTABLE)
|
||||||
|
db.close()
|
||||||
|
|
||||||
def testSerialization(self):
|
def testSerialization(self):
|
||||||
import pickle
|
import pickle
|
||||||
db = DAL(check_reserved=['all'])
|
db = DAL(check_reserved=['all'])
|
||||||
db.define_table('t_a', Field('f_a'))
|
db.define_table('t_a', Field('f_a'))
|
||||||
db.t_a.insert(f_a='test')
|
db.t_a.insert(f_a='test')
|
||||||
a = db(db.t_a.id>0).select(cacheable=True)
|
a = db(db.t_a.id > 0).select(cacheable=True)
|
||||||
s = pickle.dumps(a)
|
s = pickle.dumps(a)
|
||||||
b = pickle.loads(s)
|
b = pickle.loads(s)
|
||||||
self.assertEqual(a.db, b.db)
|
self.assertEqual(a.db, b.db)
|
||||||
|
db.t_a.drop()
|
||||||
|
db.close()
|
||||||
|
|
||||||
""" TODO:
|
""" TODO:
|
||||||
class TestDefaultValidators(unittest.TestCase):
|
class TestDefaultValidators(unittest.TestCase):
|
||||||
def testRun(self):
|
def testRun(self):
|
||||||
pass
|
pass
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
||||||
|
tearDownModule()
|
||||||
|
|||||||
Reference in New Issue
Block a user