From 302f56ecc110dd3f6d5b2af379a8d9ca9307004a Mon Sep 17 00:00:00 2001 From: niphlod Date: Sun, 3 May 2015 15:33:19 +0200 Subject: [PATCH] more tests, general cleanup --- gluon/tests/test_cache.py | 35 ++++++++++++++++++++++++++++++++++- gluon/tests/test_dal.py | 17 ++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/gluon/tests/test_cache.py b/gluon/tests/test_cache.py index 1522c6f0..68dd743e 100644 --- a/gluon/tests/test_cache.py +++ b/gluon/tests/test_cache.py @@ -13,6 +13,7 @@ fix_sys_path(__file__) from storage import Storage from cache import CacheInRam, CacheOnDisk, Cache +from gluon.dal import DAL, Field oldcwd = None @@ -30,6 +31,11 @@ def tearDownModule(): if oldcwd: os.chdir(oldcwd) oldcwd = None + try: + os.unlink('dummy.db') + except: + pass + class TestCache(unittest.TestCase): @@ -107,7 +113,34 @@ class TestCache(unittest.TestCase): cache.clear(regex=r'a*') self.assertEqual(cache('a1', lambda: 2, 0), 2) 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__': setUpModule() # pre-python-2.7 diff --git a/gluon/tests/test_dal.py b/gluon/tests/test_dal.py index 35c9c9b9..472750a9 100644 --- a/gluon/tests/test_dal.py +++ b/gluon/tests/test_dal.py @@ -4,6 +4,7 @@ Unit tests for gluon.dal """ +import os import unittest from fix_path import fix_sys_path @@ -12,8 +13,15 @@ fix_sys_path(__file__) from gluon.dal import DAL, Field +def tearDownModule(): + try: + os.unlink('dummy.db') + except: + pass + class TestDALSubclass(unittest.TestCase): + def testRun(self): from gluon.serializers import custom_json, xml from gluon import sqlhtml @@ -22,19 +30,26 @@ class TestDALSubclass(unittest.TestCase): self.assertEqual(db.serializers['xml'], xml) self.assertEqual(db.representers['rows_render'], sqlhtml.represent) self.assertEqual(db.representers['rows_xml'], sqlhtml.SQLTABLE) + db.close() def testSerialization(self): import pickle db = DAL(check_reserved=['all']) db.define_table('t_a', Field('f_a')) 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) b = pickle.loads(s) self.assertEqual(a.db, b.db) + db.t_a.drop() + db.close() """ TODO: class TestDefaultValidators(unittest.TestCase): def testRun(self): pass """ + +if __name__ == '__main__': + unittest.main() + tearDownModule()