* config herite from BaseInformation class
[tiramisu.git] / test / test_slots.py
1 # coding: utf-8
2 import autopath
3 from py.test import raises
4
5 from tiramisu.config import Config, SubConfig
6 from tiramisu.option import ChoiceOption, BoolOption, IntOption, FloatOption, \
7     StrOption, OptionDescription, SymLinkOption, UnicodeOption
8
9
10 def test_slots_option():
11     c = BoolOption('a', '')
12     raises(AttributeError, "c.x = 1")
13     c = IntOption('a', '')
14     raises(AttributeError, "c.x = 1")
15     c = FloatOption('a', '')
16     raises(AttributeError, "c.x = 1")
17     c = StrOption('a', '')
18     raises(AttributeError, "c.x = 1")
19     c = SymLinkOption('b', c)
20     raises(AttributeError, "c.x = 1")
21     c = UnicodeOption('a', '')
22     raises(AttributeError, "c.x = 1")
23     c = ChoiceOption('a', '', ('a',))
24     raises(AttributeError, "c.x = 1")
25     c = OptionDescription('a', '', [])
26     raises(AttributeError, "c.x = 1")
27
28
29 def test_slots_config():
30     od1 = OptionDescription('a', '', [])
31     od2 = OptionDescription('a', '', [od1])
32     c = Config(od2)
33     raises(AttributeError, "c.x = 1")
34     raises(AttributeError, "c.cfgimpl_x = 1")
35     sc = c.a
36     assert isinstance(sc, SubConfig)
37     raises(AttributeError, "sc.x = 1")
38     raises(AttributeError, "sc.cfgimpl_x = 1")
39
40
41 def test_slots_setting():
42     od1 = OptionDescription('a', '', [])
43     od2 = OptionDescription('a', '', [od1])
44     c = Config(od2)
45     s = c.cfgimpl_get_settings()
46     raises(AttributeError, "s.x = 1")
47
48
49 def test_slots_value():
50     od1 = OptionDescription('a', '', [])
51     od2 = OptionDescription('a', '', [od1])
52     c = Config(od2)
53     v = c.cfgimpl_get_values()
54     raises(AttributeError, "v.x = 1")