1717from openstackclient .tests .compute .v2 import fakes as compute_fakes
1818from openstackclient .tests import fakes
1919from openstackclient .tests import utils
20+ from openstackclient .tests .volume .v2 import fakes as volume_fakes
2021
2122
2223def _build_compute_az_datalist (compute_az , long_datalist = False ):
@@ -39,6 +40,22 @@ def _build_compute_az_datalist(compute_az, long_datalist=False):
3940 return (datalist ,)
4041
4142
43+ def _build_volume_az_datalist (volume_az , long_datalist = False ):
44+ datalist = ()
45+ if not long_datalist :
46+ datalist = (
47+ volume_az .zoneName ,
48+ 'available' ,
49+ )
50+ else :
51+ datalist = (
52+ volume_az .zoneName ,
53+ 'available' ,
54+ '' , '' , '' ,
55+ )
56+ return (datalist ,)
57+
58+
4259class TestAvailabilityZone (utils .TestCommand ):
4360
4461 def setUp (self ):
@@ -53,16 +70,37 @@ def setUp(self):
5370 self .compute_azs_mock = compute_client .availability_zones
5471 self .compute_azs_mock .reset_mock ()
5572
73+ volume_client = volume_fakes .FakeVolumeClient (
74+ endpoint = fakes .AUTH_URL ,
75+ token = fakes .AUTH_TOKEN ,
76+ )
77+ self .app .client_manager .volume = volume_client
78+
79+ self .volume_azs_mock = volume_client .availability_zones
80+ self .volume_azs_mock .reset_mock ()
81+
5682
5783class TestAvailabilityZoneList (TestAvailabilityZone ):
5884
5985 compute_azs = \
6086 compute_fakes .FakeAvailabilityZone .create_availability_zones ()
87+ volume_azs = \
88+ volume_fakes .FakeAvailabilityZone .create_availability_zones (count = 1 )
89+
90+ short_columnslist = ('Zone Name' , 'Zone Status' )
91+ long_columnslist = (
92+ 'Zone Name' ,
93+ 'Zone Status' ,
94+ 'Host Name' ,
95+ 'Service Name' ,
96+ 'Service Status' ,
97+ )
6198
6299 def setUp (self ):
63100 super (TestAvailabilityZoneList , self ).setUp ()
64101
65102 self .compute_azs_mock .list .return_value = self .compute_azs
103+ self .volume_azs_mock .list .return_value = self .volume_azs
66104
67105 # Get the command object to test
68106 self .cmd = availability_zone .ListAvailabilityZone (self .app , None )
@@ -76,12 +114,14 @@ def test_availability_zone_list_no_options(self):
76114 columns , data = self .cmd .take_action (parsed_args )
77115
78116 self .compute_azs_mock .list .assert_called_with ()
117+ self .volume_azs_mock .list .assert_called_with ()
79118
80- columnslist = ('Zone Name' , 'Zone Status' )
81- self .assertEqual (columnslist , columns )
119+ self .assertEqual (self .short_columnslist , columns )
82120 datalist = ()
83121 for compute_az in self .compute_azs :
84122 datalist += _build_compute_az_datalist (compute_az )
123+ for volume_az in self .volume_azs :
124+ datalist += _build_volume_az_datalist (volume_az )
85125 self .assertEqual (datalist , tuple (data ))
86126
87127 def test_availability_zone_list_long (self ):
@@ -97,17 +137,56 @@ def test_availability_zone_list_long(self):
97137 columns , data = self .cmd .take_action (parsed_args )
98138
99139 self .compute_azs_mock .list .assert_called_with ()
140+ self .volume_azs_mock .list .assert_called_with ()
100141
101- columnslist = (
102- 'Zone Name' ,
103- 'Zone Status' ,
104- 'Host Name' ,
105- 'Service Name' ,
106- 'Service Status' ,
107- )
108- self .assertEqual (columnslist , columns )
142+ self .assertEqual (self .long_columnslist , columns )
109143 datalist = ()
110144 for compute_az in self .compute_azs :
111145 datalist += _build_compute_az_datalist (compute_az ,
112146 long_datalist = True )
147+ for volume_az in self .volume_azs :
148+ datalist += _build_volume_az_datalist (volume_az ,
149+ long_datalist = True )
150+ self .assertEqual (datalist , tuple (data ))
151+
152+ def test_availability_zone_list_compute (self ):
153+ arglist = [
154+ '--compute' ,
155+ ]
156+ verifylist = [
157+ ('compute' , True ),
158+ ]
159+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
160+
161+ # DisplayCommandBase.take_action() returns two tuples
162+ columns , data = self .cmd .take_action (parsed_args )
163+
164+ self .compute_azs_mock .list .assert_called_with ()
165+ self .volume_azs_mock .list .assert_not_called ()
166+
167+ self .assertEqual (self .short_columnslist , columns )
168+ datalist = ()
169+ for compute_az in self .compute_azs :
170+ datalist += _build_compute_az_datalist (compute_az )
171+ self .assertEqual (datalist , tuple (data ))
172+
173+ def test_availability_zone_list_volume (self ):
174+ arglist = [
175+ '--volume' ,
176+ ]
177+ verifylist = [
178+ ('volume' , True ),
179+ ]
180+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
181+
182+ # DisplayCommandBase.take_action() returns two tuples
183+ columns , data = self .cmd .take_action (parsed_args )
184+
185+ self .compute_azs_mock .list .assert_not_called ()
186+ self .volume_azs_mock .list .assert_called_with ()
187+
188+ self .assertEqual (self .short_columnslist , columns )
189+ datalist = ()
190+ for volume_az in self .volume_azs :
191+ datalist += _build_volume_az_datalist (volume_az )
113192 self .assertEqual (datalist , tuple (data ))
0 commit comments