python 3.5 support
[tiramisu.git] / test / test_option.py
1 """these tests are here to create some :class:`tiramisu.option.Option`'s
2 and to compare them
3 """
4 from .autopath import do_autopath
5 do_autopath()
6
7 from py.test import raises
8
9 from tiramisu.option import IntOption, OptionDescription
10 from tiramisu.config import Config
11
12
13 def a_func():
14     return None
15
16
17 def test_option_valid_name():
18     IntOption('test', '')
19     raises(ValueError, 'IntOption(1, "")')
20     raises(ValueError, 'IntOption("1test", "")')
21     IntOption("test1", "")
22     raises(ValueError, 'IntOption("impl_test", "")')
23     raises(ValueError, 'IntOption("_test", "")')
24     raises(ValueError, 'IntOption("unwrap_from_path", "")')
25     raises(ValueError, 'IntOption("   ", "")')
26
27
28 def test_option_with_callback():
29     #no default value with callback
30     raises(ValueError, "IntOption('test', '', default=1, callback=a_func)")
31
32
33 def test_option_get_information():
34     description = "it's ok"
35     string = 'some informations'
36     i = IntOption('test', description)
37     raises(ValueError, "i.impl_get_information('noinfo')")
38     i.impl_set_information('info', string)
39     assert i.impl_get_information('info') == string
40     raises(ValueError, "i.impl_get_information('noinfo')")
41     assert i.impl_get_information('noinfo', 'default') == 'default'
42     assert i.impl_get_information('doc') == description
43     assert i.impl_getdoc() == description
44
45
46 def test_option_get_information_config():
47     description = "it's ok"
48     string = 'some informations'
49     string
50     i = IntOption('test', description)
51     od = OptionDescription('od', '', [i])
52     Config(od)
53     raises(ValueError, "i.impl_get_information('noinfo')")
54     raises(AttributeError, "i.impl_set_information('info', string)")
55 #    assert i.impl_get_information('info') == string
56     raises(ValueError, "i.impl_get_information('noinfo')")
57     assert i.impl_get_information('noinfo', 'default') == 'default'
58     assert i.impl_get_information('doc') == description
59     assert i.impl_getdoc() == description
60
61
62 def test_option_get_information_config2():
63     description = "it's ok"
64     string = 'some informations'
65     i = IntOption('test', description)
66     i.impl_set_information('info', string)
67     od = OptionDescription('od', '', [i])
68     Config(od)
69     raises(ValueError, "i.impl_get_information('noinfo')")
70     raises(AttributeError, "i.impl_set_information('info', 'hello')")
71     assert i.impl_get_information('info') == string
72     raises(ValueError, "i.impl_get_information('noinfo')")
73     assert i.impl_get_information('noinfo', 'default') == 'default'
74     assert i.impl_get_information('doc') == description
75     assert i.impl_getdoc() == description
76
77
78 def test_optiondescription_get_information():
79     description = "it's ok"
80     string = 'some informations'
81     o = OptionDescription('test', description, [])
82     o.impl_set_information('info', string)
83     assert o.impl_get_information('info') == string
84     raises(ValueError, "o.impl_get_information('noinfo')")
85     assert o.impl_get_information('noinfo', 'default') == 'default'
86     assert o.impl_get_information('doc') == description
87     assert o.impl_getdoc() == description
88
89
90 def test_option_multi():
91     IntOption('test', '', multi=True)
92     IntOption('test', '', multi=True, default_multi=1)
93     IntOption('test', '', default=[1], multi=True, default_multi=1)
94     #add default_multi to not multi's option
95     raises(ValueError, "IntOption('test', '', default_multi=1)")
96     #unvalid default_multi
97     raises(ValueError, "IntOption('test', '', multi=True, default_multi='yes')")
98     #not default_multi with callback
99     raises(ValueError, "IntOption('test', '', multi=True, default_multi=1, callback=a_func)")