e889c92d8cff9c7d65d25f37ad7d5598adcc801d
[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_network():
33     a = NetworkOption('a', '')
34     od = OptionDescription('od', '', [a])
35     c = Config(od)
36     c.a = '192.168.1.1'
37     c.a = '192.168.1.0'
38     c.a = '88.88.88.88'
39     c.a = '0.0.0.0'
40     raises(ValueError, "c.a = '255.255.255.0'")
41
42
43 def test_netmask():
44     a = NetmaskOption('a', '')
45     od = OptionDescription('od', '', [a])
46     c = Config(od)
47     raises(ValueError, "c.a = '192.168.1.1'")
48     raises(ValueError, "c.a = '192.168.1.0'")
49     raises(ValueError, "c.a = '88.88.88.88'")
50     c.a = '0.0.0.0'
51     c.a = '255.255.255.0'
52
53
54 def test_port():
55     a = PortOption('a', '')
56     b = PortOption('b', '', allow_zero=True)
57     c = PortOption('c', '', allow_zero=True, allow_registred=False)
58     d = PortOption('d', '', allow_zero=True, allow_wellknown=False, allow_registred=False)
59     e = PortOption('e', '', allow_zero=True, allow_private=True)
60     f = PortOption('f', '', allow_private=True)
61     od = OptionDescription('od', '', [a, b, c, d, e, f])
62     c = Config(od)
63     raises(ValueError, "c.a = 0")
64     c.a = 1
65     c.a = 1023
66     c.a = 1024
67     c.a = 49151
68     raises(ValueError, "c.a = 49152")
69     raises(ValueError, "c.a = 65535")
70     raises(ValueError, "c.a = 65536")
71
72     c.b = 0
73     c.b = 1
74     c.b = 1023
75     c.b = 1024
76     c.b = 49151
77     raises(ValueError, "c.b = 49152")
78     raises(ValueError, "c.b = 65535")
79     raises(ValueError, "c.b = 65536")
80
81     c.c = 0
82     c.c = 1
83     c.c = 1023
84     raises(ValueError, "c.c = 1024")
85     raises(ValueError, "c.c = 49151")
86     raises(ValueError, "c.c = 49152")
87     raises(ValueError, "c.c = 65535")
88     raises(ValueError, "c.c = 65536")
89
90     c.d = 0
91     raises(ValueError, "c.d = 1")
92     raises(ValueError, "c.d = 1023")
93     raises(ValueError, "c.d = 1024")
94     raises(ValueError, "c.d = 49151")
95     raises(ValueError, "c.d = 49152")
96     raises(ValueError, "c.d = 65535")
97     raises(ValueError, "c.d = 65536")
98
99     c.e = 0
100     c.e = 1
101     c.e = 1023
102     c.e = 1024
103     c.e = 49151
104     c.e = 49152
105     c.e = 65535
106
107     raises(ValueError, "c.f = 0")
108     c.f = 1
109     c.f = 1023
110     c.f = 1024
111     c.f = 49151
112     c.f = 49152
113     c.f = 65535
114     raises(ValueError, "c.f = 65536")
115
116
117 def test_port_range():
118     a = PortOption('a', '', allow_range=True)
119     b = PortOption('b', '', allow_range=True, allow_zero=True)
120     c = PortOption('c', '', allow_range=True, allow_zero=True, allow_registred=False)
121     d = PortOption('d', '', allow_range=True, allow_zero=True, allow_wellknown=False, allow_registred=False)
122     e = PortOption('e', '', allow_range=True, allow_zero=True, allow_private=True)
123     f = PortOption('f', '', allow_range=True, allow_private=True)
124     od = OptionDescription('od', '', [a, b, c, d, e, f])
125     c = Config(od)
126     raises(ValueError, "c.a = 0")
127     c.a = 1
128     c.a = 1023
129     c.a = 1024
130     c.a = 49151
131     raises(ValueError, "c.a = 49152")
132     raises(ValueError, "c.a = 65535")
133     raises(ValueError, "c.a = 65536")
134     c.a = '1:49151'
135     raises(ValueError, "c.a = '0:49151'")
136     raises(ValueError, "c.a = '1:49152'")
137
138     c.b = 0
139     c.b = 1
140     c.b = 1023
141     c.b = 1024
142     c.b = 49151
143     raises(ValueError, "c.b = 49152")
144     raises(ValueError, "c.b = 65535")
145     raises(ValueError, "c.b = 65536")
146     c.b = '0:49151'
147     raises(ValueError, "c.b = '0:49152'")
148
149     c.c = 0
150     c.c = 1
151     c.c = 1023
152     raises(ValueError, "c.c = 1024")
153     raises(ValueError, "c.c = 49151")
154     raises(ValueError, "c.c = 49152")
155     raises(ValueError, "c.c = 65535")
156     raises(ValueError, "c.c = 65536")
157     c.c = '0:1023'
158     raises(ValueError, "c.c = '0:1024'")
159
160     c.d = 0
161     raises(ValueError, "c.d = 1")
162     raises(ValueError, "c.d = 1023")
163     raises(ValueError, "c.d = 1024")
164     raises(ValueError, "c.d = 49151")
165     raises(ValueError, "c.d = 49152")
166     raises(ValueError, "c.d = 65535")
167     raises(ValueError, "c.d = 65536")
168     raises(ValueError, "c.d = '0:0'")
169     raises(ValueError, "c.d = '0:1'")
170
171     c.e = 0
172     c.e = 1
173     c.e = 1023
174     c.e = 1024
175     c.e = 49151
176     c.e = 49152
177     c.e = 65535
178     c.e = '0:65535'
179     raises(ValueError, "c.e = '0:65536'")
180
181     raises(ValueError, "c.f = 0")
182     c.f = 1
183     c.f = 1023
184     c.f = 1024
185     c.f = 49151
186     c.f = 49152
187     c.f = 65535
188     raises(ValueError, "c.f = 65536")
189     c.f = '1:65535'
190     c.f = '3:4'
191     raises(ValueError, "c.f = '0:65535'")
192     raises(ValueError, "c.f = '4:3'")