initial commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Unit tests for gluon.cache
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
if os.path.isdir('gluon'):
|
||||
sys.path.append(os.path.realpath('gluon'))
|
||||
else:
|
||||
sys.path.append(os.path.realpath('../'))
|
||||
|
||||
import unittest
|
||||
from storage import Storage
|
||||
from cache import CacheInRam, CacheOnDisk
|
||||
|
||||
oldcwd = None
|
||||
|
||||
def setUpModule():
|
||||
global oldcwd
|
||||
if oldcwd is None:
|
||||
oldcwd = os.getcwd()
|
||||
if not os.path.isdir('gluon'):
|
||||
os.chdir(os.path.realpath('../../'))
|
||||
|
||||
def tearDownModule():
|
||||
global oldcwd
|
||||
if oldcwd:
|
||||
os.chdir(oldcwd)
|
||||
oldcwd = None
|
||||
|
||||
class TestCache(unittest.TestCase):
|
||||
|
||||
def testCacheInRam(self):
|
||||
|
||||
# defaults to mode='http'
|
||||
|
||||
cache = CacheInRam()
|
||||
self.assertEqual(cache('a', lambda: 1, 0), 1)
|
||||
self.assertEqual(cache('a', lambda: 2, 100), 1)
|
||||
cache.clear('b')
|
||||
self.assertEqual(cache('a', lambda: 2, 100), 1)
|
||||
cache.clear('a')
|
||||
self.assertEqual(cache('a', lambda: 2, 100), 2)
|
||||
cache.clear()
|
||||
self.assertEqual(cache('a', lambda: 3, 100), 3)
|
||||
self.assertEqual(cache('a', lambda: 4, 0), 4)
|
||||
|
||||
def testCacheOnDisk(self):
|
||||
|
||||
# defaults to mode='http'
|
||||
|
||||
s = Storage({'application': 'admin',
|
||||
'folder': 'applications/admin'})
|
||||
cache = CacheOnDisk(s)
|
||||
self.assertEqual(cache('a', lambda: 1, 0), 1)
|
||||
self.assertEqual(cache('a', lambda: 2, 100), 1)
|
||||
cache.clear('b')
|
||||
self.assertEqual(cache('a', lambda: 2, 100), 1)
|
||||
cache.clear('a')
|
||||
self.assertEqual(cache('a', lambda: 2, 100), 2)
|
||||
cache.clear()
|
||||
self.assertEqual(cache('a', lambda: 3, 100), 3)
|
||||
self.assertEqual(cache('a', lambda: 4, 0), 4)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
setUpModule() # pre-python-2.7
|
||||
unittest.main()
|
||||
tearDownModule()
|
||||
Reference in New Issue
Block a user