remove pep8 validation errors
[tiramisu.git] / test / test_choice_option.py
1 # coding: utf-8
2 from autopath import do_autopath
3 do_autopath()
4
5 from tiramisu.setting import owners
6 from tiramisu.option import ChoiceOption, StrOption, OptionDescription
7 from tiramisu.config import Config
8
9 from py.test import raises
10
11
12 def return_val(val):
13     return val
14
15
16 def return_list():
17     return ['val1', 'val2']
18
19
20 def return_calc_list(val):
21     return [val]
22
23
24 def test_choiceoption_function():
25     ch = ChoiceOption('ch', '', values=return_list)
26     od = OptionDescription('od', '', [ch])
27     cfg = Config(od)
28     cfg.read_write()
29     owner = cfg.cfgimpl_get_settings().getowner()
30     assert cfg.getowner(ch) == owners.default
31     cfg.ch = 'val1'
32     assert cfg.getowner(ch) == owner
33     del(cfg.ch)
34     assert cfg.getowner(ch) == owners.default
35     raises(ValueError, "cfg.ch='no'")
36     assert cfg.getowner(ch) == owners.default
37
38
39 def test_choiceoption_calc_function():
40     ch = ChoiceOption('ch', "", values=return_calc_list, values_params={'': ('val1',)})
41     od = OptionDescription('od', '', [ch])
42     cfg = Config(od)
43     cfg.read_write()
44     owner = cfg.cfgimpl_get_settings().getowner()
45     assert cfg.getowner(ch) == owners.default
46     cfg.ch = 'val1'
47     assert cfg.getowner(ch) == owner
48     del(cfg.ch)
49     assert cfg.getowner(ch) == owners.default
50     raises(ValueError, "cfg.ch='no'")
51     assert cfg.getowner(ch) == owners.default
52
53
54 def test_choiceoption_calc_opt_function():
55     st = StrOption('st', '', 'val1')
56     ch = ChoiceOption('ch', "", values=return_calc_list, values_params={'': ((st, False),)})
57     od = OptionDescription('od', '', [st, ch])
58     cfg = Config(od)
59     cfg.read_write()
60     owner = cfg.cfgimpl_get_settings().getowner()
61     assert cfg.getowner(ch) == owners.default
62     cfg.ch = 'val1'
63     assert cfg.getowner(ch) == owner
64     del(cfg.ch)
65     assert cfg.getowner(ch) == owners.default
66     raises(ValueError, "cfg.ch='no'")
67     assert cfg.getowner(ch) == owners.default
68
69
70 def test_choiceoption_calc_opt_multi_function():
71     st = StrOption('st', '', ['val1'], multi=True)
72     ch = ChoiceOption('ch', "", default_multi='val2', values=return_val, values_params={'': ((st, False),)}, multi=True)
73     ch2 = ChoiceOption('ch2', "", default=['val2'], values=return_val, values_params={'': ((st, False),)}, multi=True)
74     od = OptionDescription('od', '', [st, ch, ch2])
75     cfg = Config(od)
76     cfg.read_write()
77     assert cfg.ch == []
78     owner = cfg.cfgimpl_get_settings().getowner()
79     assert cfg.getowner(ch) == owners.default
80     raises(ValueError, "cfg.ch.append()")
81     cfg.ch = ['val1']
82     assert cfg.getowner(ch) == owner
83     del(cfg.ch)
84     assert cfg.getowner(ch) == owners.default
85     raises(ValueError, "cfg.ch='no'")
86     assert cfg.getowner(ch) == owners.default
87     #
88     raises(ValueError, "cfg.ch2")