Skip to content

Commit d27ff5a

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "volume: Migrate 'service *' to SDK"
2 parents 82170be + b933330 commit d27ff5a

File tree

4 files changed

+232
-319
lines changed

4 files changed

+232
-319
lines changed

openstackclient/tests/unit/volume/v2/test_service.py

Lines changed: 57 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -12,150 +12,118 @@
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
1519
from osc_lib import exceptions
1620

1721
from openstackclient.tests.unit.volume.v2 import fakes as volume_fakes
1822
from 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

Comments
 (0)