-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcore_tests_cache.py
67 lines (55 loc) · 2.46 KB
/
core_tests_cache.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import unittest
from abpytools.core.cache import Cache
class CacheTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.data = [[0, 1], 'n', ('tuple', 0), 3.1415]
cls.names = ['a', 'b', 'c', 'd']
cls.data_dict = {key: value for key, value in zip(cls.names, cls.data)}
def test_cache_instantiation(self):
cache = Cache()
self.assertIsInstance(cache, Cache)
def test_cache_update_1(self):
cache = Cache()
cache.update(key='a', data=self.data_dict['a'])
self.assertEqual(cache['a'], self.data_dict['a'])
def test_cache_update_2(self):
# check if cache works when adding a second item
cache = Cache()
cache.update(key='a', data=self.data_dict['a'])
cache.update(key='b', data=self.data_dict['b'])
self.assertEqual(cache['b'], self.data_dict['b'])
def test_contains(self):
cache = Cache()
cache.update(key='a', data=self.data_dict['a'])
self.assertTrue('a' in cache)
def test_cache_remove_key(self):
cache = Cache()
cache.update(key='a', data=self.data_dict['a'])
cache.update(key='b', data=self.data_dict['b'])
cache.remove('a')
self.assertFalse('a' in cache)
def test_cache_empty(self):
cache = Cache()
cache.update(key='a', data=self.data_dict['a'])
cache.update(key='b', data=self.data_dict['b'])
cache.empty_cache()
self.assertEqual(len(cache), 0)
def test_cache_maximum_size_1(self):
cache = Cache(max_cache_size=2)
cache.update(key='a', data=self.data_dict['a'])
cache.update(key='b', data=self.data_dict['b'])
# override is True by default, but this makes it explicit that it is testing for this (default) situation
cache.update(key='c', data=self.data_dict['c'], override=True)
self.assertFalse('a' in cache)
def test_cache_maximum_size_2(self):
cache = Cache(max_cache_size=2)
cache.update(key='a', data=self.data_dict['a'])
cache.update(key='b', data=self.data_dict['b'])
cache.update(key='c', data=self.data_dict['c'], override=True)
self.assertEqual(len(cache), 2)
def test_cache_maximum_size_exception(self):
cache = Cache(max_cache_size=2)
cache.update(key='a', data=self.data_dict['a'])
cache.update(key='b', data=self.data_dict['b'])
self.assertRaises(ValueError, cache.update, 'c', self.data_dict['c'], False)