@@ -97,7 +97,7 @@ def test_create_no_options(self):
9797 self .assertRaises (tests_utils .ParserException ,
9898 self .check_parser , self .cmd , [], [])
9999
100- def test_create_source_group_and_ip (self ):
100+ def test_create_all_source_options (self ):
101101 arglist = [
102102 '--src-ip' , '10.10.0.0/24' ,
103103 '--src-group' , self ._security_group .id ,
@@ -114,6 +114,14 @@ def test_create_bad_protocol(self):
114114 self .assertRaises (tests_utils .ParserException ,
115115 self .check_parser , self .cmd , arglist , [])
116116
117+ def test_create_bad_ethertype (self ):
118+ arglist = [
119+ '--ethertype' , 'foo' ,
120+ self ._security_group .id ,
121+ ]
122+ self .assertRaises (tests_utils .ParserException ,
123+ self .check_parser , self .cmd , arglist , [])
124+
117125 def test_create_default_rule (self ):
118126 self ._setup_security_group_rule ({
119127 'port_range_max' : 443 ,
@@ -124,6 +132,8 @@ def test_create_default_rule(self):
124132 self ._security_group .id ,
125133 ]
126134 verifylist = [
135+ ('dst_port' , (self ._security_group_rule .port_range_min ,
136+ self ._security_group_rule .port_range_max )),
127137 ('group' , self ._security_group .id ),
128138 ]
129139 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
@@ -150,12 +160,14 @@ def test_create_source_group(self):
150160 })
151161 arglist = [
152162 '--dst-port' , str (self ._security_group_rule .port_range_min ),
163+ '--ingress' ,
153164 '--src-group' , self ._security_group .name ,
154165 self ._security_group .id ,
155166 ]
156167 verifylist = [
157168 ('dst_port' , (self ._security_group_rule .port_range_min ,
158169 self ._security_group_rule .port_range_max )),
170+ ('ingress' , True ),
159171 ('src_group' , self ._security_group .name ),
160172 ('group' , self ._security_group .id ),
161173 ]
@@ -206,6 +218,43 @@ def test_create_source_ip(self):
206218 self .assertEqual (tuple (self .expected_columns ), columns )
207219 self .assertEqual (self .expected_data , data )
208220
221+ def test_create_network_options (self ):
222+ self ._setup_security_group_rule ({
223+ 'direction' : 'egress' ,
224+ 'ethertype' : 'IPv6' ,
225+ 'port_range_max' : 443 ,
226+ 'port_range_min' : 443 ,
227+ 'remote_group_id' : None ,
228+ 'remote_ip_prefix' : None ,
229+ })
230+ arglist = [
231+ '--dst-port' , str (self ._security_group_rule .port_range_min ),
232+ '--egress' ,
233+ '--ethertype' , self ._security_group_rule .ethertype ,
234+ self ._security_group .id ,
235+ ]
236+ verifylist = [
237+ ('dst_port' , (self ._security_group_rule .port_range_min ,
238+ self ._security_group_rule .port_range_max )),
239+ ('egress' , True ),
240+ ('ethertype' , self ._security_group_rule .ethertype ),
241+ ('group' , self ._security_group .id ),
242+ ]
243+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
244+
245+ columns , data = self .cmd .take_action (parsed_args )
246+
247+ self .network .create_security_group_rule .assert_called_once_with (** {
248+ 'direction' : self ._security_group_rule .direction ,
249+ 'ethertype' : self ._security_group_rule .ethertype ,
250+ 'port_range_max' : self ._security_group_rule .port_range_max ,
251+ 'port_range_min' : self ._security_group_rule .port_range_min ,
252+ 'protocol' : self ._security_group_rule .protocol ,
253+ 'security_group_id' : self ._security_group .id ,
254+ })
255+ self .assertEqual (tuple (self .expected_columns ), columns )
256+ self .assertEqual (self .expected_data , data )
257+
209258
210259class TestCreateSecurityGroupRuleCompute (TestSecurityGroupRuleCompute ):
211260
@@ -241,7 +290,7 @@ def test_create_no_options(self):
241290 self .assertRaises (tests_utils .ParserException ,
242291 self .check_parser , self .cmd , [], [])
243292
244- def test_create_source_group_and_ip (self ):
293+ def test_create_all_source_options (self ):
245294 arglist = [
246295 '--src-ip' , '10.10.0.0/24' ,
247296 '--src-group' , self ._security_group .id ,
0 commit comments