1212# under the License.
1313#
1414
15+ from unittest import mock
16+
17+ from openstack .block_storage .v2 import service as _service
18+ from openstack .test import fakes as sdk_fakes
1519from osc_lib import exceptions
1620
1721from openstackclient .tests .unit .volume .v2 import fakes as volume_fakes
1822from openstackclient .volume .v2 import service
1923
2024
21- class TestService (volume_fakes .TestVolume ):
25+ class TestServiceList (volume_fakes .TestVolume ):
2226 def setUp (self ):
2327 super ().setUp ()
2428
25- # Get a shortcut to the ServiceManager Mock
26- self .service_mock = self .volume_client .services
27- self .service_mock .reset_mock ()
28-
29-
30- class TestServiceList (TestService ):
31- # The service to be listed
32- services = volume_fakes .create_one_service ()
29+ self .service = sdk_fakes .generate_fake_resource (_service .Service )
30+ self .volume_sdk_client .services .return_value = [self .service ]
3331
34- def setUp (self ):
35- super ().setUp ()
36-
37- self .service_mock .list .return_value = [self .services ]
38-
39- # Get the command object to test
4032 self .cmd = service .ListService (self .app , None )
4133
4234 def test_service_list (self ):
4335 arglist = [
4436 '--host' ,
45- self .services .host ,
37+ self .service .host ,
4638 '--service' ,
47- self .services .binary ,
39+ self .service .binary ,
4840 ]
4941 verifylist = [
50- ('host' , self .services .host ),
51- ('service' , self .services .binary ),
42+ ('host' , self .service .host ),
43+ ('service' , self .service .binary ),
5244 ]
5345 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
5446
55- # In base command class Lister in cliff, abstract method take_action()
56- # returns a tuple containing the column names and an iterable
57- # containing the data to be listed.
5847 columns , data = self .cmd .take_action (parsed_args )
5948
60- expected_columns = [
49+ expected_columns = (
6150 'Binary' ,
6251 'Host' ,
6352 'Zone' ,
6453 'Status' ,
6554 'State' ,
6655 'Updated At' ,
67- ]
68-
69- # confirming if all expected columns are present in the result.
70- self .assertEqual (expected_columns , columns )
71-
56+ )
7257 datalist = (
7358 (
74- self .services .binary ,
75- self .services .host ,
76- self .services . zone ,
77- self .services .status ,
78- self .services .state ,
79- self .services .updated_at ,
59+ self .service .binary ,
60+ self .service .host ,
61+ self .service . availability_zone ,
62+ self .service .status ,
63+ self .service .state ,
64+ self .service .updated_at ,
8065 ),
8166 )
82-
83- # confirming if all expected values are present in the result.
67+ self .assertEqual (expected_columns , columns )
8468 self .assertEqual (datalist , tuple (data ))
85-
86- # checking if proper call was made to list services
87- self .service_mock .list .assert_called_with (
88- self .services .host ,
89- self .services .binary ,
69+ self .volume_sdk_client .services .assert_called_with (
70+ host = self .service .host ,
71+ binary = self .service .binary ,
9072 )
9173
92- # checking if prohibited columns are present in output
93- self .assertNotIn ("Disabled Reason" , columns )
94- self .assertNotIn (self .services .disabled_reason , tuple (data ))
95-
9674 def test_service_list_with_long_option (self ):
9775 arglist = [
9876 '--host' ,
99- self .services .host ,
77+ self .service .host ,
10078 '--service' ,
101- self .services .binary ,
79+ self .service .binary ,
10280 '--long' ,
10381 ]
10482 verifylist = [
105- ('host' , self .services .host ),
106- ('service' , self .services .binary ),
83+ ('host' , self .service .host ),
84+ ('service' , self .service .binary ),
10785 ('long' , True ),
10886 ]
10987 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
11088
111- # In base command class Lister in cliff, abstract method take_action()
112- # returns a tuple containing the column names and an iterable
113- # containing the data to be listed.
11489 columns , data = self .cmd .take_action (parsed_args )
11590
116- expected_columns = [
91+ expected_columns = (
11792 'Binary' ,
11893 'Host' ,
11994 'Zone' ,
12095 'Status' ,
12196 'State' ,
12297 'Updated At' ,
12398 'Disabled Reason' ,
124- ]
125-
126- # confirming if all expected columns are present in the result.
127- self .assertEqual (expected_columns , columns )
128-
99+ )
129100 datalist = (
130101 (
131- self .services .binary ,
132- self .services .host ,
133- self .services . zone ,
134- self .services .status ,
135- self .services .state ,
136- self .services .updated_at ,
137- self .services .disabled_reason ,
102+ self .service .binary ,
103+ self .service .host ,
104+ self .service . availability_zone ,
105+ self .service .status ,
106+ self .service .state ,
107+ self .service .updated_at ,
108+ self .service .disabled_reason ,
138109 ),
139110 )
140-
141- # confirming if all expected values are present in the result.
111+ self .assertEqual (expected_columns , columns )
142112 self .assertEqual (datalist , tuple (data ))
143-
144- self .service_mock .list .assert_called_with (
145- self .services .host ,
146- self .services .binary ,
113+ self .volume_sdk_client .services .assert_called_with (
114+ host = self .service .host ,
115+ binary = self .service .binary ,
147116 )
148117
149118
150- class TestServiceSet (TestService ):
151- service = volume_fakes .create_one_service ()
152-
119+ class TestServiceSet (volume_fakes .TestVolume ):
153120 def setUp (self ):
154121 super ().setUp ()
155122
156- self .service_mock .enable .return_value = self .service
157- self .service_mock .disable .return_value = self .service
158- self .service_mock .disable_log_reason .return_value = self .service
123+ self .service = sdk_fakes .generate_fake_resource (_service .Service )
124+ self .service .enable = mock .Mock (autospec = True )
125+ self .service .disable = mock .Mock (autospec = True )
126+ self .volume_sdk_client .find_service .return_value = self .service
159127
160128 self .cmd = service .SetService (self .app , None )
161129
@@ -171,9 +139,8 @@ def test_service_set_nothing(self):
171139 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
172140 result = self .cmd .take_action (parsed_args )
173141
174- self .service_mock .enable .assert_not_called ()
175- self .service_mock .disable .assert_not_called ()
176- self .service_mock .disable_log_reason .assert_not_called ()
142+ self .service .enable .assert_not_called ()
143+ self .service .disable .assert_not_called ()
177144 self .assertIsNone (result )
178145
179146 def test_service_set_enable (self ):
@@ -191,11 +158,8 @@ def test_service_set_enable(self):
191158
192159 result = self .cmd .take_action (parsed_args )
193160
194- self .service_mock .enable .assert_called_with (
195- self .service .host , self .service .binary
196- )
197- self .service_mock .disable .assert_not_called ()
198- self .service_mock .disable_log_reason .assert_not_called ()
161+ self .service .enable .assert_called_with (self .volume_sdk_client )
162+ self .service .disable .assert_not_called ()
199163 self .assertIsNone (result )
200164
201165 def test_service_set_disable (self ):
@@ -213,11 +177,10 @@ def test_service_set_disable(self):
213177
214178 result = self .cmd .take_action (parsed_args )
215179
216- self .service_mock .disable .assert_called_with (
217- self .service .host , self .service .binary
180+ self .service .enable .assert_not_called ()
181+ self .service .disable .assert_called_with (
182+ self .volume_sdk_client , reason = None
218183 )
219- self .service_mock .enable .assert_not_called ()
220- self .service_mock .disable_log_reason .assert_not_called ()
221184 self .assertIsNone (result )
222185
223186 def test_service_set_disable_with_reason (self ):
@@ -239,8 +202,9 @@ def test_service_set_disable_with_reason(self):
239202
240203 result = self .cmd .take_action (parsed_args )
241204
242- self .service_mock .disable_log_reason .assert_called_with (
243- self .service .host , self .service .binary , reason
205+ self .service .enable .assert_not_called ()
206+ self .service .disable .assert_called_with (
207+ self .volume_sdk_client , reason = reason
244208 )
245209 self .assertIsNone (result )
246210
@@ -258,6 +222,7 @@ def test_service_set_only_with_disable_reason(self):
258222 ('service' , self .service .binary ),
259223 ]
260224 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
225+
261226 try :
262227 self .cmd .take_action (parsed_args )
263228 self .fail ("CommandError should be raised." )
@@ -284,6 +249,7 @@ def test_service_set_enable_with_disable_reason(self):
284249 ('service' , self .service .binary ),
285250 ]
286251 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
252+
287253 try :
288254 self .cmd .take_action (parsed_args )
289255 self .fail ("CommandError should be raised." )
0 commit comments