add allow_reserved in IPOption
[tiramisu.git] / test / test_config_ip.py
1 import autopath
2 from py.test import raises
3 from tiramisu.config import Config
4 from tiramisu.option import IPOption, NetworkOption, NetmaskOption, \
5     PortOption, OptionDescription
6
7
8 def test_ip():
9     a = IPOption('a', '')
10     b = IPOption('b', '', only_private=True)
11     od = OptionDescription('od', '', [a, b])
12     c = Config(od)
13     c.a = '192.168.1.1'
14     c.a = '192.168.1.0'
15     c.a = '88.88.88.88'
16     c.a = '0.0.0.0'
17     raises(ValueError, "c.a = '255.255.255.0'")
18     c.b = '192.168.1.1'
19     c.b = '192.168.1.0'
20     raises(ValueError, "c.b = '88.88.88.88'")
21     c.b = '0.0.0.0'
22     raises(ValueError, "c.b = '255.255.255.0'")
23
24
25 def test_ip_default():
26     a = IPOption('a', '', '88.88.88.88')
27     od = OptionDescription('od', '', [a])
28     c = Config(od)
29     c.a == '88.88.88.88'
30
31
32 def test_ip_reserved():
33     a = IPOption('a', '')
34     b = IPOption('b', '', allow_reserved=True)
35     od = OptionDescription('od', '', [a, b])
36     c = Config(od)
37     raises(ValueError, "c.a = '226.94.1.1'")
38     c.b = '226.94.1.1'
39
40
41 def test_network():
42     a = NetworkOption('a', '')
43     od = OptionDescription('od', '', [a])
44     c = Config(od)
45     c.a = '192.168.1.1'
46     c.a = '192.168.1.0'
47     c.a = '88.88.88.88'
48     c.a = '0.0.0.0'
49     raises(ValueError, "c.a = '255.255.255.0'")
50
51
52 def test_netmask():
53     a = NetmaskOption('a', '')
54     od = OptionDescription('od', '', [a])
55     c = Config(od)
56     raises(ValueError, "c.a = '192.168.1.1'")
57     raises(ValueError, "c.a = '192.168.1.0'")
58     raises(ValueError, "c.a = '88.88.88.88'")
59     c.a = '0.0.0.0'
60     c.a = '255.255.255.0'
61
62
63 def test_port():
64     a = PortOption('a', '')
65     b = PortOption('b', '', allow_zero=True)
66     c = PortOption('c', '', allow_zero=True, allow_registred=False)
67     d = PortOption('d', '', allow_zero=True, allow_wellknown=False, allow_registred=False)
68     e = PortOption('e', '', allow_zero=True, allow_private=True)
69     f = PortOption('f', '', allow_private=True)
70     od = OptionDescription('od', '', [a, b, c, d, e, f])
71     c = Config(od)
72     raises(ValueError, "c.a = 0")
73     c.a = 1
74     c.a = 1023
75     c.a = 1024
76     c.a = 49151
77     raises(ValueError, "c.a = 49152")
78     raises(ValueError, "c.a = 65535")
79     raises(ValueError, "c.a = 65536")
80
81     c.b = 0
82     c.b = 1
83     c.b = 1023
84     c.b = 1024
85     c.b = 49151
86     raises(ValueError, "c.b = 49152")
87     raises(ValueError, "c.b = 65535")
88     raises(ValueError, "c.b = 65536")
89
90     c.c = 0
91     c.c = 1
92     c.c = 1023
93     raises(ValueError, "c.c = 1024")
94     raises(ValueError, "c.c = 49151")
95     raises(ValueError, "c.c = 49152")
96     raises(ValueError, "c.c = 65535")
97     raises(ValueError, "c.c = 65536")
98
99     c.d = 0
100     raises(ValueError, "c.d = 1")
101     raises(ValueError, "c.d = 1023")
102     raises(ValueError, "c.d = 1024")
103     raises(ValueError, "c.d = 49151")
104     raises(ValueError, "c.d = 49152")
105     raises(ValueError, "c.d = 65535")
106     raises(ValueError, "c.d = 65536")
107
108     c.e = 0
109     c.e = 1
110     c.e = 1023
111     c.e = 1024
112     c.e = 49151
113     c.e = 49152
114     c.e = 65535
115
116     raises(ValueError, "c.f = 0")
117     c.f = 1
118     c.f = 1023
119     c.f = 1024
120     c.f = 49151
121     c.f = 49152
122     c.f = 65535
123     raises(ValueError, "c.f = 65536")
124
125
126 def test_port_range():
127     a = PortOption('a', '', allow_range=True)
128     b = PortOption('b', '', allow_range=True, allow_zero=True)
129     c = PortOption('c', '', allow_range=True, allow_zero=True, allow_registred=False)
130     d = PortOption('d', '', allow_range=True, allow_zero=True, allow_wellknown=False, allow_registred=False)
131     e = PortOption('e', '', allow_range=True, allow_zero=True, allow_private=True)
132     f = PortOption('f', '', allow_range=True, allow_private=True)
133     od = OptionDescription('od', '', [a, b, c, d, e, f])
134     c = Config(od)
135     raises(ValueError, "c.a = 0")
136     c.a = 1
137     c.a = 1023
138     c.a = 1024
139     c.a = 49151
140     raises(ValueError, "c.a = 49152")
141     raises(ValueError, "c.a = 65535")
142     raises(ValueError, "c.a = 65536")
143     c.a = '1:49151'
144     raises(ValueError, "c.a = '0:49151'")
145     raises(ValueError, "c.a = '1:49152'")
146
147     c.b = 0
148     c.b = 1
149     c.b = 1023
150     c.b = 1024
151     c.b = 49151
152     raises(ValueError, "c.b = 49152")
153     raises(ValueError, "c.b = 65535")
154     raises(ValueError, "c.b = 65536")
155     c.b = '0:49151'
156     raises(ValueError, "c.b = '0:49152'")
157
158     c.c = 0
159     c.c = 1
160     c.c = 1023
161     raises(ValueError, "c.c = 1024")
162     raises(ValueError, "c.c = 49151")
163     raises(ValueError, "c.c = 49152")
164     raises(ValueError, "c.c = 65535")
165     raises(ValueError, "c.c = 65536")
166     c.c = '0:1023'
167     raises(ValueError, "c.c = '0:1024'")
168
169     c.d = 0
170     raises(ValueError, "c.d = 1")
171     raises(ValueError, "c.d = 1023")
172     raises(ValueError, "c.d = 1024")
173     raises(ValueError, "c.d = 49151")
174     raises(ValueError, "c.d = 49152")
175     raises(ValueError, "c.d = 65535")
176     raises(ValueError, "c.d = 65536")
177     raises(ValueError, "c.d = '0:0'")
178     raises(ValueError, "c.d = '0:1'")
179
180     c.e = 0
181     c.e = 1
182     c.e = 1023
183     c.e = 1024
184     c.e = 49151
185     c.e = 49152
186     c.e = 65535
187     c.e = '0:65535'
188     raises(ValueError, "c.e = '0:65536'")
189
190     raises(ValueError, "c.f = 0")
191     c.f = 1
192     c.f = 1023
193     c.f = 1024
194     c.f = 49151
195     c.f = 49152
196     c.f = 65535
197     raises(ValueError, "c.f = 65536")
198     c.f = '1:65535'
199     c.f = '3:4'
200     raises(ValueError, "c.f = '0:65535'")
201     raises(ValueError, "c.f = '4:3'")