1111# under the License.
1212#
1313
14+ import mock
1415import six
1516
1617from openstackclient .common import availability_zone
1718from openstackclient .tests .compute .v2 import fakes as compute_fakes
1819from openstackclient .tests import fakes
20+ from openstackclient .tests .network .v2 import fakes as network_fakes
1921from openstackclient .tests import utils
2022from openstackclient .tests .volume .v2 import fakes as volume_fakes
2123
@@ -33,6 +35,7 @@ def _build_compute_az_datalist(compute_az, long_datalist=False):
3335 datalist += (
3436 compute_az .zoneName ,
3537 'available' ,
38+ '' ,
3639 host ,
3740 service ,
3841 'enabled :-) ' + state ['updated_at' ],
@@ -51,6 +54,23 @@ def _build_volume_az_datalist(volume_az, long_datalist=False):
5154 datalist = (
5255 volume_az .zoneName ,
5356 'available' ,
57+ '' , '' , '' , '' ,
58+ )
59+ return (datalist ,)
60+
61+
62+ def _build_network_az_datalist (network_az , long_datalist = False ):
63+ datalist = ()
64+ if not long_datalist :
65+ datalist = (
66+ network_az .name ,
67+ network_az .state ,
68+ )
69+ else :
70+ datalist = (
71+ network_az .name ,
72+ network_az .state ,
73+ network_az .resource ,
5474 '' , '' , '' ,
5575 )
5676 return (datalist ,)
@@ -79,18 +99,31 @@ def setUp(self):
7999 self .volume_azs_mock = volume_client .availability_zones
80100 self .volume_azs_mock .reset_mock ()
81101
102+ network_client = network_fakes .FakeNetworkV2Client (
103+ endpoint = fakes .AUTH_URL ,
104+ token = fakes .AUTH_TOKEN ,
105+ )
106+ self .app .client_manager .network = network_client
107+
108+ network_client .availability_zones = mock .Mock ()
109+ network_client .find_extension = mock .Mock ()
110+ self .network_azs_mock = network_client .availability_zones
111+
82112
83113class TestAvailabilityZoneList (TestAvailabilityZone ):
84114
85115 compute_azs = \
86116 compute_fakes .FakeAvailabilityZone .create_availability_zones ()
87117 volume_azs = \
88118 volume_fakes .FakeAvailabilityZone .create_availability_zones (count = 1 )
119+ network_azs = \
120+ network_fakes .FakeAvailabilityZone .create_availability_zones ()
89121
90122 short_columnslist = ('Zone Name' , 'Zone Status' )
91123 long_columnslist = (
92124 'Zone Name' ,
93125 'Zone Status' ,
126+ 'Zone Resource' ,
94127 'Host Name' ,
95128 'Service Name' ,
96129 'Service Status' ,
@@ -101,6 +134,7 @@ def setUp(self):
101134
102135 self .compute_azs_mock .list .return_value = self .compute_azs
103136 self .volume_azs_mock .list .return_value = self .volume_azs
137+ self .network_azs_mock .return_value = self .network_azs
104138
105139 # Get the command object to test
106140 self .cmd = availability_zone .ListAvailabilityZone (self .app , None )
@@ -115,13 +149,16 @@ def test_availability_zone_list_no_options(self):
115149
116150 self .compute_azs_mock .list .assert_called_with ()
117151 self .volume_azs_mock .list .assert_called_with ()
152+ self .network_azs_mock .assert_called_with ()
118153
119154 self .assertEqual (self .short_columnslist , columns )
120155 datalist = ()
121156 for compute_az in self .compute_azs :
122157 datalist += _build_compute_az_datalist (compute_az )
123158 for volume_az in self .volume_azs :
124159 datalist += _build_volume_az_datalist (volume_az )
160+ for network_az in self .network_azs :
161+ datalist += _build_network_az_datalist (network_az )
125162 self .assertEqual (datalist , tuple (data ))
126163
127164 def test_availability_zone_list_long (self ):
@@ -138,6 +175,7 @@ def test_availability_zone_list_long(self):
138175
139176 self .compute_azs_mock .list .assert_called_with ()
140177 self .volume_azs_mock .list .assert_called_with ()
178+ self .network_azs_mock .assert_called_with ()
141179
142180 self .assertEqual (self .long_columnslist , columns )
143181 datalist = ()
@@ -147,6 +185,9 @@ def test_availability_zone_list_long(self):
147185 for volume_az in self .volume_azs :
148186 datalist += _build_volume_az_datalist (volume_az ,
149187 long_datalist = True )
188+ for network_az in self .network_azs :
189+ datalist += _build_network_az_datalist (network_az ,
190+ long_datalist = True )
150191 self .assertEqual (datalist , tuple (data ))
151192
152193 def test_availability_zone_list_compute (self ):
@@ -163,6 +204,7 @@ def test_availability_zone_list_compute(self):
163204
164205 self .compute_azs_mock .list .assert_called_with ()
165206 self .volume_azs_mock .list .assert_not_called ()
207+ self .network_azs_mock .assert_not_called ()
166208
167209 self .assertEqual (self .short_columnslist , columns )
168210 datalist = ()
@@ -184,9 +226,32 @@ def test_availability_zone_list_volume(self):
184226
185227 self .compute_azs_mock .list .assert_not_called ()
186228 self .volume_azs_mock .list .assert_called_with ()
229+ self .network_azs_mock .assert_not_called ()
187230
188231 self .assertEqual (self .short_columnslist , columns )
189232 datalist = ()
190233 for volume_az in self .volume_azs :
191234 datalist += _build_volume_az_datalist (volume_az )
192235 self .assertEqual (datalist , tuple (data ))
236+
237+ def test_availability_zone_list_network (self ):
238+ arglist = [
239+ '--network' ,
240+ ]
241+ verifylist = [
242+ ('network' , True ),
243+ ]
244+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
245+
246+ # DisplayCommandBase.take_action() returns two tuples
247+ columns , data = self .cmd .take_action (parsed_args )
248+
249+ self .compute_azs_mock .list .assert_not_called ()
250+ self .volume_azs_mock .list .assert_not_called ()
251+ self .network_azs_mock .assert_called_with ()
252+
253+ self .assertEqual (self .short_columnslist , columns )
254+ datalist = ()
255+ for network_az in self .network_azs :
256+ datalist += _build_network_az_datalist (network_az )
257+ self .assertEqual (datalist , tuple (data ))
0 commit comments