#!/usr/bin/env python3
import sys
import os
import unittest
import logging
import tempfile
# Extend PYTHONPATH with local 'lib' folder
jasyroot = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]), os.pardir, os.pardir, os.pardir))
sys.path.insert(0, jasyroot)
import jasy.core.Cache as Cache
[docs]class Tests(unittest.TestCase):
[docs] def test_store_and_read(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337)
self.assertEqual(cache.read("test"), 1337)
[docs] def test_overwriting(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337)
self.assertEqual(cache.read("test"), 1337)
cache.store("test", "yeah")
self.assertEqual(cache.read("test"), "yeah")
[docs] def test_close_and_reopen(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337)
self.assertEqual(cache.read("test"), 1337)
cache.close()
cache2 = Cache.Cache(tempDirectory)
self.assertEqual(cache2.read("test"), 1337)
[docs] def test_clear(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337)
self.assertEqual(cache.read("test"), 1337)
cache.close()
cache2 = Cache.Cache(tempDirectory)
cache2.clear()
cache2.close()
cache3 = Cache.Cache(tempDirectory)
self.assertEqual(cache3.read("test"), None)
[docs] def test_store_iMfalse_and_read_iMtrue(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337, inMemory=False)
self.assertEqual(cache.read("test"), 1337)
[docs] def test_store_iMfalse_and_read_iMfalse(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337, inMemory=False)
self.assertEqual(cache.read("test", inMemory=False), 1337)
[docs] def test_store_iMtrue_and_read_iMfalse(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337)
self.assertEqual(cache.read("test", inMemory=False), 1337)
[docs] def test_store_read_transient(self):
tempDirectory = tempfile.TemporaryDirectory().name
os.makedirs(tempDirectory)
cache = Cache.Cache(tempDirectory)
cache.store("test", 1337, transient=True, inMemory=False)
self.assertEqual(cache.read("test", inMemory=False), None)
if __name__ == '__main__':
logging.getLogger().setLevel(logging.ERROR)
suite = unittest.TestLoader().loadTestsFromTestCase(Tests)
unittest.TextTestRunner(verbosity=2).run(suite)