aboutsummaryrefslogtreecommitdiff
path: root/tests/test_cache.py
blob: 5c32f2bad292a4b56e9f46092517085942afdbd9 (plain)
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
import unittest

import cachetools
import collections


@cachetools.cache
class DictCache(dict):
    pass


@cachetools.cache
class OrderedDictCache(collections.OrderedDict):
    pass


class CacheTest(unittest.TestCase):

    def test_dict_cache(self):
        cache = DictCache(maxsize=2)

        cache['a'] = 1
        cache['b'] = 2
        cache['c'] = 3

        self.assertEqual(len(cache), 2)
        self.assertTrue('a' in cache or ('b' in cache and 'c' in cache))
        self.assertTrue('b' in cache or ('a' in cache and 'c' in cache))
        self.assertTrue('c' in cache or ('a' in cache and 'b' in cache))

    def test_ordered_dict_cache(self):
        cache = OrderedDictCache(maxsize=2)

        cache['a'] = 1
        cache['b'] = 2
        cache['c'] = 3

        self.assertEqual(len(cache), 2)
        self.assertNotIn('a', cache)
        self.assertEqual(cache['b'], 2)
        self.assertEqual(cache['c'], 3)