cache in sql works
[tiramisu.git] / test / test_dereference.py
1 # coding: utf-8
2 import autopath
3 #from py.test import raises
4
5 from tiramisu.config import Config
6 from tiramisu.option import BoolOption, OptionDescription
7 import weakref
8
9
10 def test_deref_storage():
11     b = BoolOption('b', '')
12     o = OptionDescription('od', '', [b])
13     c = Config(o)
14     w = weakref.ref(c.cfgimpl_get_values()._p_)
15     del(c)
16     assert w() is None
17
18
19 def test_deref_value():
20     b = BoolOption('b', '')
21     o = OptionDescription('od', '', [b])
22     c = Config(o)
23     w = weakref.ref(c.cfgimpl_get_values())
24     del(c)
25     assert w() is None
26
27
28 def test_deref_setting():
29     b = BoolOption('b', '')
30     o = OptionDescription('od', '', [b])
31     c = Config(o)
32     w = weakref.ref(c.cfgimpl_get_settings())
33     del(c)
34     assert w() is None
35
36
37 def test_deref_config():
38     b = BoolOption('b', '')
39     o = OptionDescription('od', '', [b])
40     c = Config(o)
41     w = weakref.ref(c)
42     del(c)
43     assert w() is None
44
45
46 def test_deref_option():
47     b = BoolOption('b', '')
48     o = OptionDescription('od', '', [b])
49     w = weakref.ref(b)
50     del(b)
51     assert w() is not None
52     del(o)
53     #FIXME
54     #assert w() is None
55
56
57 def test_deref_optiondescription():
58     b = BoolOption('b', '')
59     o = OptionDescription('od', '', [b])
60     w = weakref.ref(o)
61     del(b)
62     assert w() is not None
63     del(o)
64     #FIXME
65     #assert w() is None
66
67
68 #def test_deref_option_cache():
69 #    FIXME quand c'est un dico, il faut garder la reference
70 #    mais la comme c'est dans la base, forcement c'est dereference
71 #    b = BoolOption('b', '')
72 #    o = OptionDescription('od', '', [b])
73 #    o.impl_build_cache_option()
74 #    w = weakref.ref(b)
75 #    del(b)
76 #    assert w() is not None
77 #    del(o)
78 #    #FIXME l'objet n'est plus en mémoire mais par contre reste dans la base
79 #    #Voir comment supprimer (et quand)
80 #    #assert w() is None
81
82
83 def test_deref_optiondescription_cache():
84     b = BoolOption('b', '')
85     o = OptionDescription('od', '', [b])
86     o.impl_build_cache_option()
87     w = weakref.ref(o)
88     del(b)
89     assert w() is not None
90     del(o)
91     #FIXME
92     #assert w() is None
93
94
95 #def test_deref_option_config():
96 #    b = BoolOption('b', '')
97 #    o = OptionDescription('od', '', [b])
98 #    c = Config(o)
99 #    w = weakref.ref(b)
100 #    del(b)
101 #    assert w() is not None
102 #    del(o)
103 #    assert w() is not None
104 #    del(c)
105 #    #FIXME meme chose
106 #    #assert w() is None
107
108
109 #FIXME rien a voir mais si je fais un config.impl_get_path_by_opt() ca me retourne la methode !
110 def test_deref_optiondescription_config():
111     b = BoolOption('b', '')
112     o = OptionDescription('od', '', [b])
113     c = Config(o)
114     w = weakref.ref(o)
115     del(b)
116     assert w() is not None
117     del(o)
118     assert w() is not None
119     del(c)
120     #FIXME
121     #assert w() is None