test more sloted options
[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, SymLinkOption, UnicodeOption, IPOption, OptionDescription, \
8     PortOption, NetworkOption, NetmaskOption, DomainnameOption
9
10
11 def test_slots_option():
12     c = ChoiceOption('a', '', ('a',))
13     raises(AttributeError, "c.x = 1")
14     c = BoolOption('a', '')
15     raises(AttributeError, "c.x = 1")
16     c = IntOption('a', '')
17     raises(AttributeError, "c.x = 1")
18     c = FloatOption('a', '')
19     raises(AttributeError, "c.x = 1")
20     c = StrOption('a', '')
21     raises(AttributeError, "c.x = 1")
22     c = SymLinkOption('b', c)
23     raises(AttributeError, "c.x = 1")
24     c = UnicodeOption('a', '')
25     raises(AttributeError, "c.x = 1")
26     c = IPOption('a', '')
27     raises(AttributeError, "c.x = 1")
28     c = OptionDescription('a', '', [])
29     raises(AttributeError, "c.x = 1")
30     c = PortOption('a', '')
31     raises(AttributeError, "c.x = 1")
32     c = NetworkOption('a', '')
33     raises(AttributeError, "c.x = 1")
34     c = NetmaskOption('a', '')
35     raises(AttributeError, "c.x = 1")
36     c = DomainnameOption('a', '')
37     raises(AttributeError, "c.x = 1")
38
39
40 def test_slots_config():
41     od1 = OptionDescription('a', '', [])
42     od2 = OptionDescription('a', '', [od1])
43     c = Config(od2)
44     raises(AttributeError, "c.x = 1")
45     raises(AttributeError, "c.cfgimpl_x = 1")
46     sc = c.a
47     assert isinstance(sc, SubConfig)
48     raises(AttributeError, "sc.x = 1")
49     raises(AttributeError, "sc.cfgimpl_x = 1")
50
51
52 def test_slots_setting():
53     od1 = OptionDescription('a', '', [])
54     od2 = OptionDescription('a', '', [od1])
55     c = Config(od2)
56     s = c.cfgimpl_get_settings()
57     raises(AttributeError, "s.x = 1")
58
59
60 def test_slots_value():
61     od1 = OptionDescription('a', '', [])
62     od2 = OptionDescription('a', '', [od1])
63     c = Config(od2)
64     v = c.cfgimpl_get_values()
65     raises(AttributeError, "v.x = 1")