uncomment more test
[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, GroupConfig, MetaConfig
6 from tiramisu.option import BoolOption, IntOption, 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     assert w() is None
54
55
56 def test_deref_optiondescription():
57     b = BoolOption('b', '')
58     o = OptionDescription('od', '', [b])
59     w = weakref.ref(o)
60     del(b)
61     assert w() is not None
62     del(o)
63     assert w() is None
64
65
66 def test_deref_option_cache():
67     b = BoolOption('b', '')
68     o = OptionDescription('od', '', [b])
69     o.impl_build_cache_option()
70     w = weakref.ref(b)
71     del(b)
72     assert w() is not None
73     del(o)
74     assert w() is None
75
76
77 def test_deref_optiondescription_cache():
78     b = BoolOption('b', '')
79     o = OptionDescription('od', '', [b])
80     o.impl_build_cache_option()
81     w = weakref.ref(o)
82     del(b)
83     assert w() is not None
84     del(o)
85     assert w() is None
86
87
88 def test_deref_option_config():
89     b = BoolOption('b', '')
90     o = OptionDescription('od', '', [b])
91     c = Config(o)
92     w = weakref.ref(b)
93     del(b)
94     assert w() is not None
95     del(o)
96     assert w() is not None
97     del(c)
98     assert w() is None
99
100
101 #FIXME rien a voir mais si je fais un config.impl_get_path_by_opt() ca me retourne la methode !
102 def test_deref_optiondescription_config():
103     b = BoolOption('b', '')
104     o = OptionDescription('od', '', [b])
105     c = Config(o)
106     w = weakref.ref(o)
107     del(b)
108     assert w() is not None
109     del(o)
110     assert w() is not None
111     del(c)
112     #FIXME
113     #assert w() is None
114
115
116 def test_deref_groupconfig():
117     i1 = IntOption('i1', '')
118     od1 = OptionDescription('od1', '', [i1])
119     od2 = OptionDescription('od2', '', [od1])
120     conf1 = Config(od2)
121     conf2 = Config(od2)
122     meta = GroupConfig([conf1, conf2])
123     w = weakref.ref(conf1)
124     del(conf1)
125     assert w() is not None
126     del(meta)
127     assert w() is None
128
129
130 def test_deref_metaconfig():
131     i1 = IntOption('i1', '')
132     od1 = OptionDescription('od1', '', [i1])
133     od2 = OptionDescription('od2', '', [od1])
134     conf1 = Config(od2)
135     conf2 = Config(od2)
136     meta = MetaConfig([conf1, conf2])
137     w = weakref.ref(conf1)
138     del(conf1)
139     assert w() is not None
140     del(meta)
141     assert w() is None