@@ -91,6 +91,14 @@ class TestCreateSubnet(TestSubnet):
9191 }
9292 )
9393
94+ # The network segment to be returned from find_segment
95+ _network_segment = \
96+ network_fakes .FakeNetworkSegment .create_one_network_segment (
97+ attrs = {
98+ 'network_id' : _subnet .network_id ,
99+ }
100+ )
101+
94102 columns = (
95103 'allocation_pools' ,
96104 'cidr' ,
@@ -105,6 +113,7 @@ class TestCreateSubnet(TestSubnet):
105113 'name' ,
106114 'network_id' ,
107115 'project_id' ,
116+ 'segment_id' ,
108117 'subnetpool_id' ,
109118 )
110119
@@ -122,6 +131,7 @@ class TestCreateSubnet(TestSubnet):
122131 _subnet .name ,
123132 _subnet .network_id ,
124133 _subnet .project_id ,
134+ _subnet .segment_id ,
125135 _subnet .subnetpool_id ,
126136 )
127137
@@ -139,6 +149,7 @@ class TestCreateSubnet(TestSubnet):
139149 _subnet_from_pool .name ,
140150 _subnet_from_pool .network_id ,
141151 _subnet_from_pool .project_id ,
152+ _subnet_from_pool .segment_id ,
142153 _subnet_from_pool .subnetpool_id ,
143154 )
144155
@@ -156,6 +167,7 @@ class TestCreateSubnet(TestSubnet):
156167 _subnet_ipv6 .name ,
157168 _subnet_ipv6 .network_id ,
158169 _subnet_ipv6 .project_id ,
170+ _subnet_ipv6 .segment_id ,
159171 _subnet_ipv6 .subnetpool_id ,
160172 )
161173
@@ -189,6 +201,15 @@ def setUp(self):
189201 loaded = True ,
190202 )
191203
204+ # Mock SDK calls for all tests.
205+ self .network .find_network = mock .Mock (return_value = self ._network )
206+ self .network .find_segment = mock .Mock (
207+ return_value = self ._network_segment
208+ )
209+ self .network .find_subnet_pool = mock .Mock (
210+ return_value = self ._subnet_pool
211+ )
212+
192213 def test_create_no_options (self ):
193214 arglist = []
194215 verifylist = []
@@ -199,11 +220,9 @@ def test_create_no_options(self):
199220 self .check_parser , self .cmd , arglist , verifylist )
200221
201222 def test_create_default_options (self ):
202- # Mock create_subnet and find_network sdk calls to return the
203- # values we want for this test
223+ # Mock SDK calls for this test.
204224 self .network .create_subnet = mock .Mock (return_value = self ._subnet )
205225 self ._network .id = self ._subnet .network_id
206- self .network .find_network = mock .Mock (return_value = self ._network )
207226
208227 arglist = [
209228 "--subnet-range" , self ._subnet .cidr ,
@@ -233,14 +252,10 @@ def test_create_default_options(self):
233252 self .assertEqual (self .data , data )
234253
235254 def test_create_from_subnet_pool_options (self ):
236- # Mock create_subnet, find_subnet_pool, and find_network sdk calls
237- # to return the values we want for this test
255+ # Mock SDK calls for this test.
238256 self .network .create_subnet = \
239257 mock .Mock (return_value = self ._subnet_from_pool )
240258 self ._network .id = self ._subnet_from_pool .network_id
241- self .network .find_network = mock .Mock (return_value = self ._network )
242- self .network .find_subnet_pool = \
243- mock .Mock (return_value = self ._subnet_pool )
244259
245260 arglist = [
246261 self ._subnet_from_pool .name ,
@@ -293,11 +308,9 @@ def test_create_from_subnet_pool_options(self):
293308 self .assertEqual (self .data_subnet_pool , data )
294309
295310 def test_create_options_subnet_range_ipv6 (self ):
296- # Mock create_subnet and find_network sdk calls to return the
297- # values we want for this test
311+ # Mock SDK calls for this test.
298312 self .network .create_subnet = mock .Mock (return_value = self ._subnet_ipv6 )
299313 self ._network .id = self ._subnet_ipv6 .network_id
300- self .network .find_network = mock .Mock (return_value = self ._network )
301314
302315 arglist = [
303316 self ._subnet_ipv6 .name ,
@@ -360,6 +373,59 @@ def test_create_options_subnet_range_ipv6(self):
360373 self .assertEqual (self .columns , columns )
361374 self .assertEqual (self .data_ipv6 , data )
362375
376+ def test_create_no_beta_command_options (self ):
377+ arglist = [
378+ "--subnet-range" , self ._subnet .cidr ,
379+ "--network-segment" , self ._network_segment .id ,
380+ "--network" , self ._subnet .network_id ,
381+ self ._subnet .name ,
382+ ]
383+ verifylist = [
384+ ('name' , self ._subnet .name ),
385+ ('subnet_range' , self ._subnet .cidr ),
386+ ('network-segment' , self ._network_segment .id ),
387+ ('network' , self ._subnet .network_id ),
388+ ]
389+ self .app .options .os_beta_command = False
390+ self .assertRaises (tests_utils .ParserException ,
391+ self .check_parser , self .cmd , arglist , verifylist )
392+
393+ def test_create_with_network_segment (self ):
394+ # Mock SDK calls for this test.
395+ self .network .create_subnet = mock .Mock (return_value = self ._subnet )
396+ self ._network .id = self ._subnet .network_id
397+
398+ arglist = [
399+ "--subnet-range" , self ._subnet .cidr ,
400+ "--network-segment" , self ._network_segment .id ,
401+ "--network" , self ._subnet .network_id ,
402+ self ._subnet .name ,
403+ ]
404+ verifylist = [
405+ ('name' , self ._subnet .name ),
406+ ('subnet_range' , self ._subnet .cidr ),
407+ ('network_segment' , self ._network_segment .id ),
408+ ('network' , self ._subnet .network_id ),
409+ ('ip_version' , self ._subnet .ip_version ),
410+ ('gateway' , 'auto' ),
411+
412+ ]
413+
414+ self .app .options .os_beta_command = True
415+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
416+ columns , data = self .cmd .take_action (parsed_args )
417+
418+ self .network .create_subnet .assert_called_once_with (** {
419+ 'cidr' : self ._subnet .cidr ,
420+ 'enable_dhcp' : self ._subnet .enable_dhcp ,
421+ 'ip_version' : self ._subnet .ip_version ,
422+ 'name' : self ._subnet .name ,
423+ 'network_id' : self ._subnet .network_id ,
424+ 'segment_id' : self ._network_segment .id ,
425+ })
426+ self .assertEqual (self .columns , columns )
427+ self .assertEqual (self .data , data )
428+
363429
364430class TestDeleteSubnet (TestSubnet ):
365431
@@ -646,6 +712,7 @@ class TestShowSubnet(TestSubnet):
646712 'name' ,
647713 'network_id' ,
648714 'project_id' ,
715+ 'segment_id' ,
649716 'subnetpool_id' ,
650717 )
651718
@@ -663,6 +730,7 @@ class TestShowSubnet(TestSubnet):
663730 _subnet .name ,
664731 _subnet .network_id ,
665732 _subnet .tenant_id ,
733+ _subnet .segment_id ,
666734 _subnet .subnetpool_id ,
667735 )
668736
0 commit comments