summaryrefslogtreecommitdiff
path: root/sqlplain/doc/cache_ex.py
blob: 2e5a46c94f850cdcdacd951f95c35f0ebce1044e (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
from sqlplain.memoize import Memoize

class Forever(object):
    "Cache type for caches which are is never cleared"
    
class LongTime(object):
    "Cache type for caches which are rarely cleared"
    
class ShortTime(object):
    "Cache type for caches which are is often cleared"

@Memoize(ShortTime)
def f1():
    return 1

@Memoize(LongTime)
def f2():
    return 2

@Memoize(Forever)
def f3():
    return 3

def test_cache():
    assert not f1.cache
    f1()
    assert f1.cache == {(): 1}
    f1()
    assert f1.cache == {(): 1}
    f2()
    Memoize.clear(ShortTime)
    assert not f1.cache
    assert f2.cache == {(): 2}