python-openstackclient 7.2.1__py3-none-any.whl → 7.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. openstackclient/common/limits.py +1 -1
  2. openstackclient/common/quota.py +7 -2
  3. openstackclient/compute/v2/server.py +38 -22
  4. openstackclient/compute/v2/usage.py +2 -2
  5. openstackclient/identity/common.py +22 -34
  6. openstackclient/identity/v3/credential.py +45 -28
  7. openstackclient/identity/v3/limit.py +15 -0
  8. openstackclient/identity/v3/region.py +23 -22
  9. openstackclient/identity/v3/registered_limit.py +18 -0
  10. openstackclient/identity/v3/role.py +287 -117
  11. openstackclient/identity/v3/role_assignment.py +1 -1
  12. openstackclient/identity/v3/service_provider.py +95 -45
  13. openstackclient/identity/v3/trust.py +114 -75
  14. openstackclient/image/v2/image.py +3 -0
  15. openstackclient/network/v2/network.py +33 -0
  16. openstackclient/network/v2/network_flavor_profile.py +1 -17
  17. openstackclient/network/v2/port.py +73 -19
  18. openstackclient/tests/functional/compute/v2/test_server.py +87 -1
  19. openstackclient/tests/functional/identity/v3/common.py +1 -1
  20. openstackclient/tests/functional/identity/v3/test_application_credential.py +2 -1
  21. openstackclient/tests/functional/identity/v3/test_role.py +24 -0
  22. openstackclient/tests/functional/identity/v3/test_role_assignment.py +8 -0
  23. openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -5
  24. openstackclient/tests/functional/network/v2/test_port.py +28 -1
  25. openstackclient/tests/unit/compute/v2/fakes.py +0 -304
  26. openstackclient/tests/unit/compute/v2/test_aggregate.py +40 -31
  27. openstackclient/tests/unit/compute/v2/test_console.py +7 -3
  28. openstackclient/tests/unit/compute/v2/test_hypervisor.py +60 -53
  29. openstackclient/tests/unit/compute/v2/test_keypair.py +57 -69
  30. openstackclient/tests/unit/compute/v2/test_server.py +63 -5
  31. openstackclient/tests/unit/compute/v2/test_server_group.py +99 -105
  32. openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -5
  33. openstackclient/tests/unit/compute/v2/test_service.py +83 -37
  34. openstackclient/tests/unit/compute/v2/test_usage.py +12 -7
  35. openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -6
  36. openstackclient/tests/unit/identity/v2_0/test_role.py +1 -2
  37. openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +2 -1
  38. openstackclient/tests/unit/identity/v2_0/test_token.py +6 -20
  39. openstackclient/tests/unit/identity/v3/test_catalog.py +2 -5
  40. openstackclient/tests/unit/identity/v3/test_credential.py +74 -63
  41. openstackclient/tests/unit/identity/v3/test_project.py +1 -3
  42. openstackclient/tests/unit/identity/v3/test_region.py +74 -96
  43. openstackclient/tests/unit/identity/v3/test_role.py +679 -603
  44. openstackclient/tests/unit/identity/v3/test_role_assignment.py +263 -1
  45. openstackclient/tests/unit/identity/v3/test_service_provider.py +159 -209
  46. openstackclient/tests/unit/identity/v3/test_token.py +5 -20
  47. openstackclient/tests/unit/identity/v3/test_trust.py +137 -155
  48. openstackclient/tests/unit/image/v2/test_image.py +6 -0
  49. openstackclient/tests/unit/network/v2/fakes.py +3 -0
  50. openstackclient/tests/unit/network/v2/test_network.py +25 -0
  51. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +0 -35
  52. openstackclient/tests/unit/network/v2/test_port.py +129 -16
  53. openstackclient/tests/unit/utils.py +8 -2
  54. openstackclient/tests/unit/volume/v2/test_volume_backup.py +31 -13
  55. openstackclient/tests/unit/volume/v3/test_volume_backup.py +34 -13
  56. openstackclient/volume/v2/volume_backup.py +11 -2
  57. openstackclient/volume/v3/volume_backup.py +13 -2
  58. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/AUTHORS +2 -0
  59. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/METADATA +14 -16
  60. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/RECORD +65 -65
  61. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/WHEEL +1 -1
  62. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/entry_points.txt +0 -1
  63. python_openstackclient-7.3.0.dist-info/pbr.json +1 -0
  64. python_openstackclient-7.2.1.dist-info/pbr.json +0 -1
  65. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/LICENSE +0 -0
  66. {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.0.dist-info}/top_level.txt +0 -0
@@ -12,17 +12,18 @@
12
12
  # License for the specific language governing permissions and limitations
13
13
  # under the License.
14
14
 
15
- import copy
16
15
  from unittest import mock
17
16
  from unittest.mock import call
18
17
  import uuid
19
18
 
19
+ from openstack.compute.v2 import keypair as _keypair
20
+ from openstack.identity.v3 import project as _project
21
+ from openstack.identity.v3 import user as _user
22
+ from openstack.test import fakes as sdk_fakes
20
23
  from osc_lib import exceptions
21
24
 
22
25
  from openstackclient.compute.v2 import keypair
23
26
  from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
24
- from openstackclient.tests.unit import fakes
25
- from openstackclient.tests.unit.identity.v2_0 import fakes as identity_fakes
26
27
  from openstackclient.tests.unit import utils as tests_utils
27
28
 
28
29
 
@@ -31,20 +32,17 @@ class TestKeypair(compute_fakes.TestComputev2):
31
32
  super().setUp()
32
33
 
33
34
  # Initialize the user mock
35
+ self._user = sdk_fakes.generate_fake_resource(_user.User)
34
36
  self.users_mock = self.identity_client.users
35
37
  self.users_mock.reset_mock()
36
- self.users_mock.get.return_value = fakes.FakeResource(
37
- None,
38
- copy.deepcopy(identity_fakes.USER),
39
- loaded=True,
40
- )
38
+ self.users_mock.get.return_value = self._user
41
39
 
42
40
 
43
41
  class TestKeypairCreate(TestKeypair):
44
42
  def setUp(self):
45
43
  super().setUp()
46
44
 
47
- self.keypair = compute_fakes.create_one_keypair()
45
+ self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
48
46
 
49
47
  self.columns = (
50
48
  'created_at',
@@ -122,7 +120,7 @@ class TestKeypairCreate(TestKeypair):
122
120
  ) as mock_open:
123
121
  mock_open.return_value = mock.MagicMock()
124
122
  m_file = mock_open.return_value.__enter__.return_value
125
- m_file.read.return_value = 'dummy'
123
+ m_file.read.return_value = self.keypair.public_key
126
124
 
127
125
  columns, data = self.cmd.take_action(parsed_args)
128
126
 
@@ -208,7 +206,7 @@ class TestKeypairCreate(TestKeypair):
208
206
  ) as mock_open:
209
207
  mock_open.return_value = mock.MagicMock()
210
208
  m_file = mock_open.return_value.__enter__.return_value
211
- m_file.read.return_value = 'dummy'
209
+ m_file.read.return_value = self.keypair.public_key
212
210
  columns, data = self.cmd.take_action(parsed_args)
213
211
 
214
212
  self.compute_sdk_client.create_keypair.assert_called_with(
@@ -263,11 +261,11 @@ class TestKeypairCreate(TestKeypair):
263
261
 
264
262
  arglist = [
265
263
  '--user',
266
- identity_fakes.user_name,
264
+ self._user.name,
267
265
  self.keypair.name,
268
266
  ]
269
267
  verifylist = [
270
- ('user', identity_fakes.user_name),
268
+ ('user', self._user.name),
271
269
  ('name', self.keypair.name),
272
270
  ]
273
271
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -276,7 +274,7 @@ class TestKeypairCreate(TestKeypair):
276
274
 
277
275
  self.compute_sdk_client.create_keypair.assert_called_with(
278
276
  name=self.keypair.name,
279
- user_id=identity_fakes.user_id,
277
+ user_id=self._user.id,
280
278
  public_key=mock_generate.return_value.public_key,
281
279
  )
282
280
 
@@ -288,11 +286,11 @@ class TestKeypairCreate(TestKeypair):
288
286
 
289
287
  arglist = [
290
288
  '--user',
291
- identity_fakes.user_name,
289
+ self._user.name,
292
290
  self.keypair.name,
293
291
  ]
294
292
  verifylist = [
295
- ('user', identity_fakes.user_name),
293
+ ('user', self._user.name),
296
294
  ('name', self.keypair.name),
297
295
  ]
298
296
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -306,11 +304,13 @@ class TestKeypairCreate(TestKeypair):
306
304
 
307
305
 
308
306
  class TestKeypairDelete(TestKeypair):
309
- keypairs = compute_fakes.create_keypairs(count=2)
310
-
311
307
  def setUp(self):
312
308
  super().setUp()
313
309
 
310
+ self.keypairs = list(
311
+ sdk_fakes.generate_fake_resources(_keypair.Keypair, count=2)
312
+ )
313
+
314
314
  self.cmd = keypair.DeleteKeypair(self.app, None)
315
315
 
316
316
  def test_keypair_delete(self):
@@ -374,9 +374,9 @@ class TestKeypairDelete(TestKeypair):
374
374
  def test_keypair_delete_with_user(self):
375
375
  self.set_compute_api_version('2.10')
376
376
 
377
- arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name]
377
+ arglist = ['--user', self._user.name, self.keypairs[0].name]
378
378
  verifylist = [
379
- ('user', identity_fakes.user_name),
379
+ ('user', self._user.name),
380
380
  ('name', [self.keypairs[0].name]),
381
381
  ]
382
382
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -386,16 +386,16 @@ class TestKeypairDelete(TestKeypair):
386
386
  self.assertIsNone(ret)
387
387
  self.compute_sdk_client.delete_keypair.assert_called_with(
388
388
  self.keypairs[0].name,
389
- user_id=identity_fakes.user_id,
389
+ user_id=self._user.id,
390
390
  ignore_missing=False,
391
391
  )
392
392
 
393
393
  def test_keypair_delete_with_user_pre_v210(self):
394
394
  self.set_compute_api_version('2.9')
395
395
 
396
- arglist = ['--user', identity_fakes.user_name, self.keypairs[0].name]
396
+ arglist = ['--user', self._user.name, self.keypairs[0].name]
397
397
  verifylist = [
398
- ('user', identity_fakes.user_name),
398
+ ('user', self._user.name),
399
399
  ('name', [self.keypairs[0].name]),
400
400
  ]
401
401
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -409,17 +409,19 @@ class TestKeypairDelete(TestKeypair):
409
409
 
410
410
 
411
411
  class TestKeypairList(TestKeypair):
412
- # Return value of self.compute_sdk_client.keypairs().
413
- keypairs = compute_fakes.create_keypairs(count=1)
414
-
415
412
  def setUp(self):
416
413
  super().setUp()
417
414
 
418
- self.compute_sdk_client.keypairs.return_value = self.keypairs
415
+ self.keypairs = list(
416
+ sdk_fakes.generate_fake_resources(_keypair.Keypair, count=1)
417
+ )
418
+ self.compute_sdk_client.keypairs.return_value = iter(self.keypairs)
419
419
 
420
420
  # Get the command object to test
421
421
  self.cmd = keypair.ListKeypair(self.app, None)
422
422
 
423
+ self._project = sdk_fakes.generate_fake_resource(_project.Project)
424
+
423
425
  def test_keypair_list_no_options(self):
424
426
  arglist = []
425
427
  verifylist = []
@@ -475,26 +477,22 @@ class TestKeypairList(TestKeypair):
475
477
 
476
478
  users_mock = self.identity_client.users
477
479
  users_mock.reset_mock()
478
- users_mock.get.return_value = fakes.FakeResource(
479
- None,
480
- copy.deepcopy(identity_fakes.USER),
481
- loaded=True,
482
- )
480
+ users_mock.get.return_value = self._user
483
481
 
484
482
  arglist = [
485
483
  '--user',
486
- identity_fakes.user_name,
484
+ self._user.name,
487
485
  ]
488
486
  verifylist = [
489
- ('user', identity_fakes.user_name),
487
+ ('user', self._user.name),
490
488
  ]
491
489
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
492
490
 
493
491
  columns, data = self.cmd.take_action(parsed_args)
494
492
 
495
- users_mock.get.assert_called_with(identity_fakes.user_name)
493
+ users_mock.get.assert_called_with(self._user.name)
496
494
  self.compute_sdk_client.keypairs.assert_called_with(
497
- user_id=identity_fakes.user_id,
495
+ user_id=self._user.id,
498
496
  )
499
497
 
500
498
  self.assertEqual(('Name', 'Fingerprint', 'Type'), columns)
@@ -514,10 +512,10 @@ class TestKeypairList(TestKeypair):
514
512
 
515
513
  arglist = [
516
514
  '--user',
517
- identity_fakes.user_name,
515
+ self._user.name,
518
516
  ]
519
517
  verifylist = [
520
- ('user', identity_fakes.user_name),
518
+ ('user', self._user.name),
521
519
  ]
522
520
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
523
521
 
@@ -533,32 +531,22 @@ class TestKeypairList(TestKeypair):
533
531
 
534
532
  projects_mock = self.identity_client.tenants
535
533
  projects_mock.reset_mock()
536
- projects_mock.get.return_value = fakes.FakeResource(
537
- None,
538
- copy.deepcopy(identity_fakes.PROJECT),
539
- loaded=True,
540
- )
534
+ projects_mock.get.return_value = self._project
541
535
 
542
536
  users_mock = self.identity_client.users
543
537
  users_mock.reset_mock()
544
- users_mock.list.return_value = [
545
- fakes.FakeResource(
546
- None,
547
- copy.deepcopy(identity_fakes.USER),
548
- loaded=True,
549
- ),
550
- ]
538
+ users_mock.list.return_value = [self._user]
551
539
 
552
- arglist = ['--project', identity_fakes.project_name]
553
- verifylist = [('project', identity_fakes.project_name)]
540
+ arglist = ['--project', self._project.name]
541
+ verifylist = [('project', self._project.name)]
554
542
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
555
543
 
556
544
  columns, data = self.cmd.take_action(parsed_args)
557
545
 
558
- projects_mock.get.assert_called_with(identity_fakes.project_name)
559
- users_mock.list.assert_called_with(tenant_id=identity_fakes.project_id)
546
+ projects_mock.get.assert_called_with(self._project.name)
547
+ users_mock.list.assert_called_with(tenant_id=self._project.id)
560
548
  self.compute_sdk_client.keypairs.assert_called_with(
561
- user_id=identity_fakes.user_id,
549
+ user_id=self._user.id,
562
550
  )
563
551
 
564
552
  self.assertEqual(('Name', 'Fingerprint', 'Type'), columns)
@@ -576,8 +564,8 @@ class TestKeypairList(TestKeypair):
576
564
  def test_keypair_list_with_project_pre_v210(self):
577
565
  self.set_compute_api_version('2.9')
578
566
 
579
- arglist = ['--project', identity_fakes.project_name]
580
- verifylist = [('project', identity_fakes.project_name)]
567
+ arglist = ['--project', self._project.name]
568
+ verifylist = [('project', self._project.name)]
581
569
 
582
570
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
583
571
  ex = self.assertRaises(
@@ -590,9 +578,9 @@ class TestKeypairList(TestKeypair):
590
578
  def test_keypair_list_conflicting_user_options(self):
591
579
  arglist = [
592
580
  '--user',
593
- identity_fakes.user_name,
581
+ self._user.name,
594
582
  '--project',
595
- identity_fakes.project_name,
583
+ self._project.name,
596
584
  ]
597
585
 
598
586
  self.assertRaises(
@@ -707,7 +695,7 @@ class TestKeypairShow(TestKeypair):
707
695
  )
708
696
 
709
697
  def test_keypair_show(self):
710
- self.keypair = compute_fakes.create_one_keypair()
698
+ self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
711
699
  self.compute_sdk_client.find_keypair.return_value = self.keypair
712
700
 
713
701
  self.data = (
@@ -735,7 +723,7 @@ class TestKeypairShow(TestKeypair):
735
723
  self.assertEqual(self.data, data)
736
724
 
737
725
  def test_keypair_show_public(self):
738
- self.keypair = compute_fakes.create_one_keypair()
726
+ self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
739
727
  self.compute_sdk_client.find_keypair.return_value = self.keypair
740
728
 
741
729
  arglist = ['--public-key', self.keypair.name]
@@ -751,7 +739,7 @@ class TestKeypairShow(TestKeypair):
751
739
  def test_keypair_show_with_user(self):
752
740
  self.set_compute_api_version('2.10')
753
741
 
754
- self.keypair = compute_fakes.create_one_keypair()
742
+ self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
755
743
  self.compute_sdk_client.find_keypair.return_value = self.keypair
756
744
 
757
745
  self.data = (
@@ -767,22 +755,22 @@ class TestKeypairShow(TestKeypair):
767
755
 
768
756
  arglist = [
769
757
  '--user',
770
- identity_fakes.user_name,
758
+ self._user.name,
771
759
  self.keypair.name,
772
760
  ]
773
761
  verifylist = [
774
- ('user', identity_fakes.user_name),
762
+ ('user', self._user.name),
775
763
  ('name', self.keypair.name),
776
764
  ]
777
765
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
778
766
 
779
767
  columns, data = self.cmd.take_action(parsed_args)
780
768
 
781
- self.users_mock.get.assert_called_with(identity_fakes.user_name)
769
+ self.users_mock.get.assert_called_with(self._user.name)
782
770
  self.compute_sdk_client.find_keypair.assert_called_with(
783
771
  self.keypair.name,
784
772
  ignore_missing=False,
785
- user_id=identity_fakes.user_id,
773
+ user_id=self._user.id,
786
774
  )
787
775
 
788
776
  self.assertEqual(self.columns, columns)
@@ -791,14 +779,14 @@ class TestKeypairShow(TestKeypair):
791
779
  def test_keypair_show_with_user_pre_v210(self):
792
780
  self.set_compute_api_version('2.9')
793
781
 
794
- self.keypair = compute_fakes.create_one_keypair()
782
+ self.keypair = sdk_fakes.generate_fake_resource(_keypair.Keypair)
795
783
  arglist = [
796
784
  '--user',
797
- identity_fakes.user_name,
785
+ self._user.name,
798
786
  self.keypair.name,
799
787
  ]
800
788
  verifylist = [
801
- ('user', identity_fakes.user_name),
789
+ ('user', self._user.name),
802
790
  ('name', self.keypair.name),
803
791
  ]
804
792
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -21,7 +21,9 @@ from unittest import mock
21
21
  import uuid
22
22
 
23
23
  import iso8601
24
+ from openstack.compute.v2 import server_group as _server_group
24
25
  from openstack import exceptions as sdk_exceptions
26
+ from openstack.test import fakes as sdk_fakes
25
27
  from osc_lib.cli import format_columns
26
28
  from osc_lib import exceptions
27
29
  from osc_lib import utils as common_utils
@@ -1165,7 +1167,7 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
1165
1167
  self.server.id, ignore_missing=False
1166
1168
  )
1167
1169
  self.compute_sdk_client.add_security_group_to_server.assert_called_once_with(
1168
- self.server, 'fake_sg'
1170
+ self.server, {'name': 'fake_sg'}
1169
1171
  )
1170
1172
  mock_find_nova_net_sg.assert_called_once_with(
1171
1173
  self.compute_sdk_client, 'fake_sg'
@@ -1186,7 +1188,7 @@ class TestServerAddSecurityGroup(compute_fakes.TestComputev2):
1186
1188
  self.server.id, ignore_missing=False
1187
1189
  )
1188
1190
  self.compute_sdk_client.add_security_group_to_server.assert_called_once_with(
1189
- self.server, 'fake_sg'
1191
+ self.server, {'name': 'fake_sg'}
1190
1192
  )
1191
1193
  self.assertIsNone(result)
1192
1194
 
@@ -1375,7 +1377,9 @@ class TestServerCreate(TestServer):
1375
1377
  self.assertEqual(self.datalist(), data)
1376
1378
 
1377
1379
  def test_server_create_with_options(self):
1378
- server_group = compute_fakes.create_one_server_group()
1380
+ server_group = sdk_fakes.generate_fake_resource(
1381
+ _server_group.ServerGroup
1382
+ )
1379
1383
  self.compute_sdk_client.find_server_group.return_value = server_group
1380
1384
 
1381
1385
  security_group = network_fakes.create_one_security_group()
@@ -1544,6 +1548,60 @@ class TestServerCreate(TestServer):
1544
1548
  self.assertEqual(self.columns, columns)
1545
1549
  self.assertEqual(self.datalist(), data)
1546
1550
 
1551
+ def test_server_create_with_no_security_group(self):
1552
+ arglist = [
1553
+ '--image',
1554
+ self.image.id,
1555
+ '--flavor',
1556
+ self.flavor.id,
1557
+ '--no-security-group',
1558
+ self.server.name,
1559
+ ]
1560
+ verifylist = [
1561
+ ('image', self.image.id),
1562
+ ('flavor', self.flavor.id),
1563
+ ('key_name', None),
1564
+ ('properties', None),
1565
+ ('security_groups', []),
1566
+ ('hints', {}),
1567
+ ('server_group', None),
1568
+ ('config_drive', False),
1569
+ ('password', None),
1570
+ ('server_name', self.server.name),
1571
+ ]
1572
+
1573
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
1574
+ columns, data = self.cmd.take_action(parsed_args)
1575
+
1576
+ self.compute_sdk_client.find_flavor.assert_has_calls(
1577
+ [mock.call(self.flavor.id, ignore_missing=False)] * 2
1578
+ )
1579
+ self.network_client.find_security_group.assert_not_called()
1580
+ self.image_client.find_image.assert_called_once_with(
1581
+ self.image.id, ignore_missing=False
1582
+ )
1583
+ self.compute_sdk_client.create_server.assert_called_once_with(
1584
+ name=self.server.name,
1585
+ image_id=self.image.id,
1586
+ flavor_id=self.flavor.id,
1587
+ min_count=1,
1588
+ max_count=1,
1589
+ security_groups=[],
1590
+ networks=[],
1591
+ block_device_mapping=[
1592
+ {
1593
+ 'uuid': self.image.id,
1594
+ 'boot_index': 0,
1595
+ 'source_type': 'image',
1596
+ 'destination_type': 'local',
1597
+ 'delete_on_termination': True,
1598
+ },
1599
+ ],
1600
+ )
1601
+
1602
+ self.assertEqual(self.columns, columns)
1603
+ self.assertEqual(self.datalist(), data)
1604
+
1547
1605
  def test_server_create_with_network(self):
1548
1606
  network_net1 = network_fakes.create_one_network()
1549
1607
  network_net2 = network_fakes.create_one_network()
@@ -7400,7 +7458,7 @@ class TestServerRemoveSecurityGroup(TestServer):
7400
7458
  self.server.id, ignore_missing=False
7401
7459
  )
7402
7460
  self.compute_sdk_client.remove_security_group_from_server.assert_called_once_with(
7403
- self.server, 'fake_sg'
7461
+ self.server, {'name': 'fake_sg'}
7404
7462
  )
7405
7463
  mock_find_nova_net_sg.assert_called_once_with(
7406
7464
  self.compute_sdk_client, 'fake_sg'
@@ -7421,7 +7479,7 @@ class TestServerRemoveSecurityGroup(TestServer):
7421
7479
  self.server.id, ignore_missing=False
7422
7480
  )
7423
7481
  self.compute_sdk_client.remove_security_group_from_server.assert_called_once_with(
7424
- self.server, 'fake_sg'
7482
+ self.server, {'name': 'fake_sg'}
7425
7483
  )
7426
7484
  self.assertIsNone(result)
7427
7485