|
14 | 14 | import copy |
15 | 15 | import mock |
16 | 16 |
|
| 17 | +from openstackclient.common import exceptions |
17 | 18 | from openstackclient.network.v2 import address_scope |
18 | 19 | from openstackclient.tests import fakes |
19 | 20 | from openstackclient.tests.identity.v3 import fakes as identity_fakes_v3 |
@@ -237,6 +238,72 @@ def test_address_scope_list(self): |
237 | 238 | self.assertEqual(self.data, list(data)) |
238 | 239 |
|
239 | 240 |
|
| 241 | +class TestSetAddressScope(TestAddressScope): |
| 242 | + |
| 243 | + # The address scope to set. |
| 244 | + _address_scope = network_fakes.FakeAddressScope.create_one_address_scope() |
| 245 | + |
| 246 | + def setUp(self): |
| 247 | + super(TestSetAddressScope, self).setUp() |
| 248 | + self.network.update_address_scope = mock.Mock(return_value=None) |
| 249 | + self.network.find_address_scope = mock.Mock( |
| 250 | + return_value=self._address_scope) |
| 251 | + |
| 252 | + # Get the command object to test |
| 253 | + self.cmd = address_scope.SetAddressScope(self.app, self.namespace) |
| 254 | + |
| 255 | + def test_set_nothing(self): |
| 256 | + arglist = [self._address_scope.name, ] |
| 257 | + verifylist = [ |
| 258 | + ('address_scope', self._address_scope.name), |
| 259 | + ] |
| 260 | + |
| 261 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 262 | + self.assertRaises(exceptions.CommandError, self.cmd.take_action, |
| 263 | + parsed_args) |
| 264 | + |
| 265 | + def test_set_name_and_share(self): |
| 266 | + arglist = [ |
| 267 | + '--name', 'new_address_scope', |
| 268 | + '--share', |
| 269 | + self._address_scope.name, |
| 270 | + ] |
| 271 | + verifylist = [ |
| 272 | + ('name', 'new_address_scope'), |
| 273 | + ('share', True), |
| 274 | + ('address_scope', self._address_scope.name), |
| 275 | + ] |
| 276 | + |
| 277 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 278 | + result = self.cmd.take_action(parsed_args) |
| 279 | + attrs = { |
| 280 | + 'name': "new_address_scope", |
| 281 | + 'shared': True, |
| 282 | + } |
| 283 | + self.network.update_address_scope.assert_called_with( |
| 284 | + self._address_scope, **attrs) |
| 285 | + self.assertIsNone(result) |
| 286 | + |
| 287 | + def test_set_no_share(self): |
| 288 | + arglist = [ |
| 289 | + '--no-share', |
| 290 | + self._address_scope.name, |
| 291 | + ] |
| 292 | + verifylist = [ |
| 293 | + ('no_share', True), |
| 294 | + ('address_scope', self._address_scope.name), |
| 295 | + ] |
| 296 | + |
| 297 | + parsed_args = self.check_parser(self.cmd, arglist, verifylist) |
| 298 | + result = self.cmd.take_action(parsed_args) |
| 299 | + attrs = { |
| 300 | + 'shared': False, |
| 301 | + } |
| 302 | + self.network.update_address_scope.assert_called_with( |
| 303 | + self._address_scope, **attrs) |
| 304 | + self.assertIsNone(result) |
| 305 | + |
| 306 | + |
240 | 307 | class TestShowAddressScope(TestAddressScope): |
241 | 308 |
|
242 | 309 | # The address scope to show. |
|
0 commit comments