python-openstackclient 8.2.0__py3-none-any.whl → 9.0.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 (233) hide show
  1. openstackclient/api/object_store_v1.py +4 -1
  2. openstackclient/command.py +27 -0
  3. openstackclient/common/availability_zone.py +1 -1
  4. openstackclient/common/clientmanager.py +59 -21
  5. openstackclient/common/configuration.py +1 -1
  6. openstackclient/common/extension.py +1 -1
  7. openstackclient/common/limits.py +1 -1
  8. openstackclient/common/module.py +5 -3
  9. openstackclient/common/project_cleanup.py +10 -8
  10. openstackclient/common/quota.py +54 -23
  11. openstackclient/common/versions.py +1 -2
  12. openstackclient/compute/v2/agent.py +1 -1
  13. openstackclient/compute/v2/aggregate.py +6 -5
  14. openstackclient/compute/v2/console.py +5 -3
  15. openstackclient/compute/v2/console_connection.py +1 -1
  16. openstackclient/compute/v2/flavor.py +1 -1
  17. openstackclient/compute/v2/host.py +1 -1
  18. openstackclient/compute/v2/hypervisor.py +1 -1
  19. openstackclient/compute/v2/hypervisor_stats.py +1 -1
  20. openstackclient/compute/v2/keypair.py +1 -1
  21. openstackclient/compute/v2/server.py +78 -29
  22. openstackclient/compute/v2/server_backup.py +1 -1
  23. openstackclient/compute/v2/server_event.py +1 -1
  24. openstackclient/compute/v2/server_group.py +4 -2
  25. openstackclient/compute/v2/server_image.py +1 -1
  26. openstackclient/compute/v2/server_migration.py +1 -1
  27. openstackclient/compute/v2/server_volume.py +1 -1
  28. openstackclient/compute/v2/service.py +1 -1
  29. openstackclient/compute/v2/usage.py +6 -4
  30. openstackclient/identity/common.py +33 -1
  31. openstackclient/identity/v2_0/catalog.py +3 -2
  32. openstackclient/identity/v2_0/ec2creds.py +1 -1
  33. openstackclient/identity/v2_0/endpoint.py +1 -1
  34. openstackclient/identity/v2_0/project.py +17 -7
  35. openstackclient/identity/v2_0/role.py +1 -1
  36. openstackclient/identity/v2_0/role_assignment.py +3 -3
  37. openstackclient/identity/v2_0/service.py +4 -2
  38. openstackclient/identity/v2_0/token.py +1 -1
  39. openstackclient/identity/v2_0/user.py +2 -2
  40. openstackclient/identity/v3/access_rule.py +16 -4
  41. openstackclient/identity/v3/application_credential.py +30 -10
  42. openstackclient/identity/v3/catalog.py +3 -3
  43. openstackclient/identity/v3/consumer.py +1 -1
  44. openstackclient/identity/v3/credential.py +1 -1
  45. openstackclient/identity/v3/domain.py +10 -4
  46. openstackclient/identity/v3/ec2creds.py +1 -1
  47. openstackclient/identity/v3/endpoint.py +33 -12
  48. openstackclient/identity/v3/endpoint_group.py +1 -1
  49. openstackclient/identity/v3/federation_protocol.py +40 -41
  50. openstackclient/identity/v3/group.py +11 -5
  51. openstackclient/identity/v3/identity_provider.py +12 -10
  52. openstackclient/identity/v3/implied_role.py +1 -1
  53. openstackclient/identity/v3/limit.py +86 -85
  54. openstackclient/identity/v3/mapping.py +1 -1
  55. openstackclient/identity/v3/policy.py +1 -1
  56. openstackclient/identity/v3/project.py +191 -115
  57. openstackclient/identity/v3/region.py +1 -1
  58. openstackclient/identity/v3/registered_limit.py +97 -109
  59. openstackclient/identity/v3/role.py +20 -39
  60. openstackclient/identity/v3/role_assignment.py +12 -23
  61. openstackclient/identity/v3/service.py +1 -1
  62. openstackclient/identity/v3/service_provider.py +1 -1
  63. openstackclient/identity/v3/tag.py +1 -11
  64. openstackclient/identity/v3/token.py +3 -2
  65. openstackclient/identity/v3/trust.py +4 -2
  66. openstackclient/identity/v3/unscoped_saml.py +1 -1
  67. openstackclient/identity/v3/user.py +22 -13
  68. openstackclient/image/v1/image.py +19 -16
  69. openstackclient/image/v2/cache.py +1 -1
  70. openstackclient/image/v2/image.py +16 -12
  71. openstackclient/image/v2/info.py +1 -1
  72. openstackclient/image/v2/metadef_namespaces.py +1 -1
  73. openstackclient/image/v2/metadef_objects.py +1 -1
  74. openstackclient/image/v2/metadef_properties.py +3 -2
  75. openstackclient/image/v2/metadef_resource_type_association.py +1 -1
  76. openstackclient/image/v2/metadef_resource_types.py +1 -1
  77. openstackclient/image/v2/task.py +1 -1
  78. openstackclient/network/common.py +10 -9
  79. openstackclient/network/v2/address_group.py +4 -3
  80. openstackclient/network/v2/address_scope.py +8 -6
  81. openstackclient/network/v2/default_security_group_rule.py +9 -8
  82. openstackclient/network/v2/floating_ip.py +16 -9
  83. openstackclient/network/v2/floating_ip_port_forwarding.py +9 -6
  84. openstackclient/network/v2/ip_availability.py +7 -4
  85. openstackclient/network/v2/l3_conntrack_helper.py +11 -4
  86. openstackclient/network/v2/local_ip.py +13 -7
  87. openstackclient/network/v2/local_ip_association.py +7 -4
  88. openstackclient/network/v2/ndp_proxy.py +13 -6
  89. openstackclient/network/v2/network.py +33 -16
  90. openstackclient/network/v2/network_agent.py +5 -5
  91. openstackclient/network/v2/network_auto_allocated_topology.py +1 -1
  92. openstackclient/network/v2/network_flavor.py +1 -1
  93. openstackclient/network/v2/network_flavor_profile.py +1 -1
  94. openstackclient/network/v2/network_meter.py +1 -1
  95. openstackclient/network/v2/network_meter_rule.py +1 -1
  96. openstackclient/network/v2/network_qos_policy.py +7 -5
  97. openstackclient/network/v2/network_qos_rule.py +1 -1
  98. openstackclient/network/v2/network_qos_rule_type.py +1 -1
  99. openstackclient/network/v2/network_rbac.py +8 -5
  100. openstackclient/network/v2/network_segment.py +2 -2
  101. openstackclient/network/v2/network_segment_range.py +13 -6
  102. openstackclient/network/v2/network_service_provider.py +1 -1
  103. openstackclient/network/v2/network_trunk.py +65 -42
  104. openstackclient/network/v2/port.py +22 -20
  105. openstackclient/network/v2/router.py +19 -8
  106. openstackclient/network/v2/security_group.py +10 -6
  107. openstackclient/network/v2/security_group_rule.py +11 -5
  108. openstackclient/network/v2/subnet.py +17 -18
  109. openstackclient/network/v2/subnet_pool.py +11 -9
  110. openstackclient/network/v2/taas/__init__.py +0 -0
  111. openstackclient/network/v2/taas/tap_flow.py +245 -0
  112. openstackclient/network/v2/taas/tap_mirror.py +237 -0
  113. openstackclient/network/v2/taas/tap_service.py +211 -0
  114. openstackclient/object/v1/account.py +1 -1
  115. openstackclient/object/v1/container.py +1 -1
  116. openstackclient/object/v1/object.py +1 -1
  117. openstackclient/shell.py +18 -8
  118. openstackclient/tests/functional/identity/v3/test_catalog.py +42 -23
  119. openstackclient/tests/functional/identity/v3/test_limit.py +47 -0
  120. openstackclient/tests/functional/identity/v3/test_role_assignment.py +174 -0
  121. openstackclient/tests/functional/image/v2/test_cache.py +54 -0
  122. openstackclient/tests/functional/image/v2/test_metadef_objects.py +69 -0
  123. openstackclient/tests/functional/image/v2/test_metadef_resource_type.py +55 -0
  124. openstackclient/tests/functional/volume/v3/test_volume_snapshot.py +46 -132
  125. openstackclient/tests/unit/common/test_command.py +1 -1
  126. openstackclient/tests/unit/common/test_extension.py +2 -3
  127. openstackclient/tests/unit/common/test_module.py +14 -7
  128. openstackclient/tests/unit/common/test_quota.py +79 -0
  129. openstackclient/tests/unit/compute/v2/test_aggregate.py +5 -3
  130. openstackclient/tests/unit/compute/v2/test_console.py +1 -4
  131. openstackclient/tests/unit/compute/v2/test_flavor.py +1 -3
  132. openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -9
  133. openstackclient/tests/unit/compute/v2/test_server.py +370 -38
  134. openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -3
  135. openstackclient/tests/unit/compute/v2/test_service.py +1 -3
  136. openstackclient/tests/unit/fakes.py +35 -134
  137. openstackclient/tests/unit/identity/test_common.py +100 -0
  138. openstackclient/tests/unit/identity/v2_0/test_project.py +4 -4
  139. openstackclient/tests/unit/identity/v3/fakes.py +10 -2
  140. openstackclient/tests/unit/identity/v3/test_application_credential.py +3 -3
  141. openstackclient/tests/unit/identity/v3/test_domain.py +1 -1
  142. openstackclient/tests/unit/identity/v3/test_endpoint.py +1 -1
  143. openstackclient/tests/unit/identity/v3/test_group.py +4 -2
  144. openstackclient/tests/unit/identity/v3/test_identity_provider.py +10 -10
  145. openstackclient/tests/unit/identity/v3/test_limit.py +197 -145
  146. openstackclient/tests/unit/identity/v3/test_oauth.py +1 -1
  147. openstackclient/tests/unit/identity/v3/test_project.py +832 -513
  148. openstackclient/tests/unit/identity/v3/test_protocol.py +97 -88
  149. openstackclient/tests/unit/identity/v3/test_registered_limit.py +356 -221
  150. openstackclient/tests/unit/identity/v3/test_role.py +1 -82
  151. openstackclient/tests/unit/identity/v3/test_user.py +7 -51
  152. openstackclient/tests/unit/image/v2/test_image.py +116 -5
  153. openstackclient/tests/unit/network/test_common.py +9 -13
  154. openstackclient/tests/unit/network/v2/taas/__init__.py +0 -0
  155. openstackclient/tests/unit/network/v2/taas/test_osc_tap_flow.py +276 -0
  156. openstackclient/tests/unit/network/v2/taas/test_osc_tap_mirror.py +288 -0
  157. openstackclient/tests/unit/network/v2/taas/test_osc_tap_service.py +271 -0
  158. openstackclient/tests/unit/network/v2/test_address_group.py +19 -22
  159. openstackclient/tests/unit/network/v2/test_address_scope.py +10 -15
  160. openstackclient/tests/unit/network/v2/test_default_security_group_rule.py +38 -49
  161. openstackclient/tests/unit/network/v2/test_floating_ip_network.py +21 -27
  162. openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +21 -18
  163. openstackclient/tests/unit/network/v2/test_ip_availability.py +6 -8
  164. openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +6 -15
  165. openstackclient/tests/unit/network/v2/test_local_ip.py +12 -23
  166. openstackclient/tests/unit/network/v2/test_local_ip_association.py +13 -18
  167. openstackclient/tests/unit/network/v2/test_ndp_proxy.py +11 -21
  168. openstackclient/tests/unit/network/v2/test_network.py +41 -37
  169. openstackclient/tests/unit/network/v2/test_network_agent.py +13 -20
  170. openstackclient/tests/unit/network/v2/test_network_auto_allocated_topology.py +5 -8
  171. openstackclient/tests/unit/network/v2/test_network_flavor.py +14 -26
  172. openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +14 -17
  173. openstackclient/tests/unit/network/v2/test_network_meter.py +7 -17
  174. openstackclient/tests/unit/network/v2/test_network_meter_rule.py +10 -20
  175. openstackclient/tests/unit/network/v2/test_network_qos_policy.py +7 -13
  176. openstackclient/tests/unit/network/v2/test_network_qos_rule.py +44 -54
  177. openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +2 -7
  178. openstackclient/tests/unit/network/v2/test_network_rbac.py +21 -36
  179. openstackclient/tests/unit/network/v2/test_network_segment.py +13 -29
  180. openstackclient/tests/unit/network/v2/test_network_segment_range.py +20 -19
  181. openstackclient/tests/unit/network/v2/test_network_service_provider.py +1 -4
  182. openstackclient/tests/unit/network/v2/test_network_trunk.py +52 -47
  183. openstackclient/tests/unit/network/v2/test_port.py +75 -86
  184. openstackclient/tests/unit/network/v2/test_router.py +104 -126
  185. openstackclient/tests/unit/network/v2/test_security_group_network.py +19 -26
  186. openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +17 -18
  187. openstackclient/tests/unit/network/v2/test_subnet.py +35 -46
  188. openstackclient/tests/unit/network/v2/test_subnet_pool.py +21 -33
  189. openstackclient/tests/unit/volume/test_find_resource.py +4 -13
  190. openstackclient/tests/unit/volume/v2/test_consistency_group.py +8 -2
  191. openstackclient/tests/unit/volume/v2/test_volume.py +7 -6
  192. openstackclient/tests/unit/volume/v2/test_volume_backup.py +3 -1
  193. openstackclient/tests/unit/volume/v3/test_volume.py +38 -12
  194. openstackclient/tests/unit/volume/v3/test_volume_backup.py +9 -0
  195. openstackclient/volume/client.py +7 -17
  196. openstackclient/volume/v2/backup_record.py +1 -1
  197. openstackclient/volume/v2/consistency_group.py +9 -9
  198. openstackclient/volume/v2/consistency_group_snapshot.py +3 -3
  199. openstackclient/volume/v2/qos_specs.py +3 -3
  200. openstackclient/volume/v2/service.py +1 -1
  201. openstackclient/volume/v2/volume.py +14 -7
  202. openstackclient/volume/v2/volume_backend.py +1 -1
  203. openstackclient/volume/v2/volume_backup.py +7 -5
  204. openstackclient/volume/v2/volume_host.py +1 -2
  205. openstackclient/volume/v2/volume_snapshot.py +4 -4
  206. openstackclient/volume/v2/volume_transfer_request.py +3 -3
  207. openstackclient/volume/v2/volume_type.py +16 -11
  208. openstackclient/volume/v3/block_storage_cleanup.py +1 -1
  209. openstackclient/volume/v3/block_storage_cluster.py +1 -1
  210. openstackclient/volume/v3/block_storage_log_level.py +1 -1
  211. openstackclient/volume/v3/block_storage_manage.py +1 -1
  212. openstackclient/volume/v3/block_storage_resource_filter.py +1 -1
  213. openstackclient/volume/v3/service.py +1 -1
  214. openstackclient/volume/v3/volume.py +16 -9
  215. openstackclient/volume/v3/volume_attachment.py +6 -5
  216. openstackclient/volume/v3/volume_backup.py +20 -5
  217. openstackclient/volume/v3/volume_group.py +1 -1
  218. openstackclient/volume/v3/volume_group_snapshot.py +1 -1
  219. openstackclient/volume/v3/volume_group_type.py +1 -1
  220. openstackclient/volume/v3/volume_message.py +1 -1
  221. openstackclient/volume/v3/volume_snapshot.py +4 -4
  222. openstackclient/volume/v3/volume_transfer_request.py +3 -3
  223. openstackclient/volume/v3/volume_type.py +20 -14
  224. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/METADATA +15 -13
  225. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/RECORD +231 -219
  226. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/WHEEL +1 -1
  227. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/entry_points.txt +15 -0
  228. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info/licenses}/AUTHORS +15 -0
  229. python_openstackclient-9.0.0.dist-info/pbr.json +1 -0
  230. openstackclient/tests/unit/common/test_logs.py +0 -221
  231. python_openstackclient-8.2.0.dist-info/pbr.json +0 -1
  232. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info/licenses}/LICENSE +0 -0
  233. {python_openstackclient-8.2.0.dist-info → python_openstackclient-9.0.0.dist-info}/top_level.txt +0 -0
@@ -10,72 +10,79 @@
10
10
  # License for the specific language governing permissions and limitations
11
11
  # under the License.
12
12
 
13
- import copy
14
-
15
- from keystoneauth1.exceptions import http as ksa_exceptions
13
+ from openstack import exceptions as sdk_exc
14
+ from openstack.identity.v3 import region as _region
15
+ from openstack.identity.v3 import registered_limit as _registered_limit
16
+ from openstack.identity.v3 import service as _service
17
+ from openstack.test import fakes as sdk_fakes
16
18
  from osc_lib import exceptions
17
19
 
18
20
  from openstackclient.identity.v3 import registered_limit
19
- from openstackclient.tests.unit import fakes
20
21
  from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
21
22
 
22
23
 
23
- class TestRegisteredLimit(identity_fakes.TestIdentityv3):
24
+ class TestRegisteredLimitCreate(identity_fakes.TestIdentityv3):
24
25
  def setUp(self):
25
26
  super().setUp()
26
27
 
27
- self.registered_limit_mock = self.identity_client.registered_limits
28
-
29
- self.services_mock = self.identity_client.services
30
- self.services_mock.reset_mock()
31
-
32
- self.regions_mock = self.identity_client.regions
33
- self.regions_mock.reset_mock()
28
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
29
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
34
30
 
31
+ self.description = 'default limit of foobars'
32
+ self.default_limit = 10
33
+ self.resource_name = 'foobars'
35
34
 
36
- class TestRegisteredLimitCreate(TestRegisteredLimit):
37
- def setUp(self):
38
- super().setUp()
35
+ self.identity_sdk_client.find_service.return_value = self.service
36
+ self.identity_sdk_client.get_region.return_value = self.region
39
37
 
40
- self.service = fakes.FakeResource(
41
- None, copy.deepcopy(identity_fakes.SERVICE), loaded=True
38
+ self.registered_limit = sdk_fakes.generate_fake_resource(
39
+ resource_type=_registered_limit.RegisteredLimit,
40
+ description=None,
41
+ region_id=None,
42
+ service_id=self.service.id,
43
+ default_limit=self.default_limit,
44
+ resource_name=self.resource_name,
42
45
  )
43
- self.services_mock.get.return_value = self.service
44
-
45
- self.region = fakes.FakeResource(
46
- None, copy.deepcopy(identity_fakes.REGION), loaded=True
46
+ self.registered_limit_with_options = sdk_fakes.generate_fake_resource(
47
+ resource_type=_registered_limit.RegisteredLimit,
48
+ description=self.description,
49
+ region_id=self.region.id,
50
+ service_id=self.service.id,
51
+ default_limit=self.default_limit,
52
+ resource_name=self.resource_name,
47
53
  )
48
- self.regions_mock.get.return_value = self.region
49
54
 
50
55
  self.cmd = registered_limit.CreateRegisteredLimit(self.app, None)
51
56
 
52
57
  def test_registered_limit_create_without_options(self):
53
- self.registered_limit_mock.create.return_value = fakes.FakeResource(
54
- None, copy.deepcopy(identity_fakes.REGISTERED_LIMIT), loaded=True
58
+ self.identity_sdk_client.create_registered_limit.return_value = (
59
+ self.registered_limit
55
60
  )
56
61
 
57
- resource_name = identity_fakes.registered_limit_resource_name
58
- default_limit = identity_fakes.registered_limit_default_limit
59
62
  arglist = [
60
63
  '--service',
61
- identity_fakes.service_id,
64
+ self.service.id,
62
65
  '--default-limit',
63
- '10',
64
- resource_name,
66
+ str(self.default_limit),
67
+ self.resource_name,
65
68
  ]
66
69
 
67
70
  verifylist = [
68
- ('service', identity_fakes.service_id),
69
- ('default_limit', default_limit),
70
- ('resource_name', resource_name),
71
+ ('service', self.service.id),
72
+ ('default_limit', self.default_limit),
73
+ ('resource_name', self.resource_name),
71
74
  ]
72
75
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
73
76
 
74
77
  columns, data = self.cmd.take_action(parsed_args)
75
78
 
76
- kwargs = {'description': None, 'region': None}
77
- self.registered_limit_mock.create.assert_called_with(
78
- self.service, resource_name, default_limit, **kwargs
79
+ kwargs = {
80
+ 'service_id': self.service.id,
81
+ 'default_limit': self.default_limit,
82
+ 'resource_name': self.resource_name,
83
+ }
84
+ self.identity_sdk_client.create_registered_limit.assert_called_with(
85
+ **kwargs
79
86
  )
80
87
 
81
88
  collist = (
@@ -89,51 +96,52 @@ class TestRegisteredLimitCreate(TestRegisteredLimit):
89
96
 
90
97
  self.assertEqual(collist, columns)
91
98
  datalist = (
92
- identity_fakes.registered_limit_default_limit,
99
+ self.default_limit,
93
100
  None,
94
- identity_fakes.registered_limit_id,
101
+ self.registered_limit.id,
95
102
  None,
96
- identity_fakes.registered_limit_resource_name,
97
- identity_fakes.service_id,
103
+ self.resource_name,
104
+ self.service.id,
98
105
  )
99
106
  self.assertEqual(datalist, data)
100
107
 
101
108
  def test_registered_limit_create_with_options(self):
102
- self.registered_limit_mock.create.return_value = fakes.FakeResource(
103
- None,
104
- copy.deepcopy(identity_fakes.REGISTERED_LIMIT_OPTIONS),
105
- loaded=True,
109
+ self.identity_sdk_client.create_registered_limit.return_value = (
110
+ self.registered_limit_with_options
106
111
  )
107
112
 
108
- resource_name = identity_fakes.registered_limit_resource_name
109
- default_limit = identity_fakes.registered_limit_default_limit
110
- description = identity_fakes.registered_limit_description
111
113
  arglist = [
112
114
  '--region',
113
- identity_fakes.region_id,
115
+ self.region.id,
114
116
  '--description',
115
- description,
117
+ self.description,
116
118
  '--service',
117
- identity_fakes.service_id,
119
+ self.service.id,
118
120
  '--default-limit',
119
- '10',
120
- resource_name,
121
+ str(self.default_limit),
122
+ self.resource_name,
121
123
  ]
122
124
 
123
125
  verifylist = [
124
- ('region', identity_fakes.region_id),
125
- ('description', description),
126
- ('service', identity_fakes.service_id),
127
- ('default_limit', default_limit),
128
- ('resource_name', resource_name),
126
+ ('region', self.region.id),
127
+ ('description', self.description),
128
+ ('service', self.service.id),
129
+ ('default_limit', self.default_limit),
130
+ ('resource_name', self.resource_name),
129
131
  ]
130
132
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
131
133
 
132
134
  columns, data = self.cmd.take_action(parsed_args)
133
135
 
134
- kwargs = {'description': description, 'region': self.region}
135
- self.registered_limit_mock.create.assert_called_with(
136
- self.service, resource_name, default_limit, **kwargs
136
+ kwargs = {
137
+ 'description': self.description,
138
+ 'region_id': self.region.id,
139
+ 'service_id': self.service.id,
140
+ 'default_limit': self.default_limit,
141
+ 'resource_name': self.resource_name,
142
+ }
143
+ self.identity_sdk_client.create_registered_limit.assert_called_with(
144
+ **kwargs
137
145
  )
138
146
 
139
147
  collist = (
@@ -147,44 +155,47 @@ class TestRegisteredLimitCreate(TestRegisteredLimit):
147
155
 
148
156
  self.assertEqual(collist, columns)
149
157
  datalist = (
150
- identity_fakes.registered_limit_default_limit,
151
- description,
152
- identity_fakes.registered_limit_id,
153
- identity_fakes.region_id,
154
- identity_fakes.registered_limit_resource_name,
155
- identity_fakes.service_id,
158
+ self.default_limit,
159
+ self.description,
160
+ self.registered_limit_with_options.id,
161
+ self.region.id,
162
+ self.resource_name,
163
+ self.service.id,
156
164
  )
157
165
  self.assertEqual(datalist, data)
158
166
 
159
167
 
160
- class TestRegisteredLimitDelete(TestRegisteredLimit):
168
+ class TestRegisteredLimitDelete(identity_fakes.TestIdentityv3):
161
169
  def setUp(self):
162
170
  super().setUp()
163
171
 
164
172
  self.cmd = registered_limit.DeleteRegisteredLimit(self.app, None)
165
173
 
166
174
  def test_registered_limit_delete(self):
167
- self.registered_limit_mock.delete.return_value = None
175
+ self.registered_limit = sdk_fakes.generate_fake_resource(
176
+ resource_type=_registered_limit.RegisteredLimit,
177
+ )
178
+ self.identity_sdk_client.delete_registered_limit.return_value = None
168
179
 
169
- arglist = [identity_fakes.registered_limit_id]
170
- verifylist = [
171
- ('registered_limit_id', [identity_fakes.registered_limit_id])
172
- ]
180
+ arglist = [self.registered_limit.id]
181
+ verifylist = [('registered_limits', [self.registered_limit.id])]
173
182
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
174
183
 
175
184
  result = self.cmd.take_action(parsed_args)
176
185
 
177
- self.registered_limit_mock.delete.assert_called_with(
178
- identity_fakes.registered_limit_id
186
+ self.identity_sdk_client.delete_registered_limit.assert_called_with(
187
+ self.registered_limit.id,
188
+ ignore_missing=False,
179
189
  )
180
190
  self.assertIsNone(result)
181
191
 
182
192
  def test_registered_limit_delete_with_exception(self):
183
- return_value = ksa_exceptions.NotFound()
184
- self.registered_limit_mock.delete.side_effect = return_value
193
+ self.identity_sdk_client.delete_registered_limit.side_effect = (
194
+ sdk_exc.ResourceNotFound
195
+ )
185
196
 
186
197
  arglist = ['fake-registered-limit-id']
187
- verifylist = [('registered_limit_id', ['fake-registered-limit-id'])]
198
+ verifylist = [('registered_limits', ['fake-registered-limit-id'])]
188
199
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
189
200
 
190
201
  try:
@@ -196,27 +207,52 @@ class TestRegisteredLimitDelete(TestRegisteredLimit):
196
207
  )
197
208
 
198
209
 
199
- class TestRegisteredLimitShow(TestRegisteredLimit):
210
+ class TestRegisteredLimitShow(identity_fakes.TestIdentityv3):
200
211
  def setUp(self):
201
212
  super().setUp()
202
213
 
203
- self.registered_limit_mock.get.return_value = fakes.FakeResource(
204
- None, copy.deepcopy(identity_fakes.REGISTERED_LIMIT), loaded=True
214
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
215
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
216
+
217
+ self.description = 'default limit of foobars'
218
+ self.default_limit = 10
219
+ self.resource_name = 'foobars'
220
+
221
+ self.identity_sdk_client.find_service.return_value = self.service
222
+ self.identity_sdk_client.get_region.return_value = self.region
223
+
224
+ self.registered_limit = sdk_fakes.generate_fake_resource(
225
+ resource_type=_registered_limit.RegisteredLimit,
226
+ description=None,
227
+ region_id=None,
228
+ service_id=self.service.id,
229
+ default_limit=self.default_limit,
230
+ resource_name=self.resource_name,
231
+ )
232
+ self.registered_limit_with_options = sdk_fakes.generate_fake_resource(
233
+ resource_type=_registered_limit.RegisteredLimit,
234
+ description=self.description,
235
+ region_id=self.region.id,
236
+ service_id=self.service.id,
237
+ default_limit=self.default_limit,
238
+ resource_name=self.resource_name,
205
239
  )
206
240
 
207
241
  self.cmd = registered_limit.ShowRegisteredLimit(self.app, None)
208
242
 
209
243
  def test_registered_limit_show(self):
210
- arglist = [identity_fakes.registered_limit_id]
211
- verifylist = [
212
- ('registered_limit_id', identity_fakes.registered_limit_id)
213
- ]
244
+ self.identity_sdk_client.get_registered_limit.return_value = (
245
+ self.registered_limit
246
+ )
247
+
248
+ arglist = [self.registered_limit.id]
249
+ verifylist = [('registered_limit_id', self.registered_limit.id)]
214
250
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
215
251
 
216
252
  columns, data = self.cmd.take_action(parsed_args)
217
253
 
218
- self.registered_limit_mock.get.assert_called_with(
219
- identity_fakes.registered_limit_id
254
+ self.identity_sdk_client.get_registered_limit.assert_called_with(
255
+ self.registered_limit.id
220
256
  )
221
257
 
222
258
  collist = (
@@ -229,50 +265,107 @@ class TestRegisteredLimitShow(TestRegisteredLimit):
229
265
  )
230
266
  self.assertEqual(collist, columns)
231
267
  datalist = (
232
- identity_fakes.registered_limit_default_limit,
268
+ self.default_limit,
233
269
  None,
234
- identity_fakes.registered_limit_id,
270
+ self.registered_limit.id,
235
271
  None,
236
- identity_fakes.registered_limit_resource_name,
237
- identity_fakes.service_id,
272
+ self.resource_name,
273
+ self.service.id,
274
+ )
275
+ self.assertEqual(datalist, data)
276
+
277
+ def test_registered_limit_show_with_options(self):
278
+ self.identity_sdk_client.get_registered_limit.return_value = (
279
+ self.registered_limit_with_options
280
+ )
281
+
282
+ arglist = [self.registered_limit_with_options.id]
283
+ verifylist = [
284
+ ('registered_limit_id', self.registered_limit_with_options.id)
285
+ ]
286
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
287
+
288
+ columns, data = self.cmd.take_action(parsed_args)
289
+
290
+ self.identity_sdk_client.get_registered_limit.assert_called_with(
291
+ self.registered_limit_with_options.id
292
+ )
293
+
294
+ collist = (
295
+ 'default_limit',
296
+ 'description',
297
+ 'id',
298
+ 'region_id',
299
+ 'resource_name',
300
+ 'service_id',
301
+ )
302
+ self.assertEqual(collist, columns)
303
+ datalist = (
304
+ self.default_limit,
305
+ self.description,
306
+ self.registered_limit_with_options.id,
307
+ self.region.id,
308
+ self.resource_name,
309
+ self.service.id,
238
310
  )
239
311
  self.assertEqual(datalist, data)
240
312
 
241
313
 
242
- class TestRegisteredLimitSet(TestRegisteredLimit):
314
+ class TestRegisteredLimitSet(identity_fakes.TestIdentityv3):
243
315
  def setUp(self):
244
316
  super().setUp()
317
+
318
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
319
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
320
+
321
+ self.default_limit = 10
322
+ self.resource_name = 'foobars'
323
+
324
+ self.identity_sdk_client.find_service.return_value = self.service
325
+ self.identity_sdk_client.get_region.return_value = self.region
326
+
327
+ self.registered_limit = sdk_fakes.generate_fake_resource(
328
+ resource_type=_registered_limit.RegisteredLimit,
329
+ description=None,
330
+ region_id=None,
331
+ service_id=self.service.id,
332
+ default_limit=self.default_limit,
333
+ resource_name=self.resource_name,
334
+ )
335
+
245
336
  self.cmd = registered_limit.SetRegisteredLimit(self.app, None)
246
337
 
247
338
  def test_registered_limit_set_description(self):
248
- registered_limit = copy.deepcopy(identity_fakes.REGISTERED_LIMIT)
249
- registered_limit['description'] = (
250
- identity_fakes.registered_limit_description
339
+ updated_description = 'default limit of foobars'
340
+ updated_registered_limit = sdk_fakes.generate_fake_resource(
341
+ resource_type=_registered_limit.RegisteredLimit,
342
+ id=self.registered_limit.id,
343
+ description=updated_description,
344
+ region_id=None,
345
+ service_id=self.service.id,
346
+ default_limit=self.default_limit,
347
+ resource_name=self.resource_name,
251
348
  )
252
- self.registered_limit_mock.update.return_value = fakes.FakeResource(
253
- None, registered_limit, loaded=True
349
+ self.identity_sdk_client.update_registered_limit.return_value = (
350
+ updated_registered_limit
254
351
  )
255
352
 
256
353
  arglist = [
257
354
  '--description',
258
- identity_fakes.registered_limit_description,
259
- identity_fakes.registered_limit_id,
355
+ updated_description,
356
+ self.registered_limit.id,
260
357
  ]
261
358
  verifylist = [
262
- ('description', identity_fakes.registered_limit_description),
263
- ('registered_limit_id', identity_fakes.registered_limit_id),
359
+ ('description', updated_description),
360
+ ('registered_limit_id', self.registered_limit.id),
264
361
  ]
265
362
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
266
363
 
267
364
  columns, data = self.cmd.take_action(parsed_args)
268
365
 
269
- self.registered_limit_mock.update.assert_called_with(
270
- identity_fakes.registered_limit_id,
271
- service=None,
272
- resource_name=None,
273
- default_limit=None,
274
- description=identity_fakes.registered_limit_description,
275
- region=None,
366
+ self.identity_sdk_client.update_registered_limit.assert_called_with(
367
+ self.registered_limit.id,
368
+ description=updated_description,
276
369
  )
277
370
 
278
371
  collist = (
@@ -285,43 +378,46 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
285
378
  )
286
379
  self.assertEqual(collist, columns)
287
380
  datalist = (
288
- identity_fakes.registered_limit_default_limit,
289
- identity_fakes.registered_limit_description,
290
- identity_fakes.registered_limit_id,
381
+ self.default_limit,
382
+ updated_description,
383
+ self.registered_limit.id,
291
384
  None,
292
- identity_fakes.registered_limit_resource_name,
293
- identity_fakes.service_id,
385
+ self.resource_name,
386
+ self.service.id,
294
387
  )
295
388
  self.assertEqual(datalist, data)
296
389
 
297
390
  def test_registered_limit_set_default_limit(self):
298
- registered_limit = copy.deepcopy(identity_fakes.REGISTERED_LIMIT)
299
- default_limit = 20
300
- registered_limit['default_limit'] = default_limit
301
- self.registered_limit_mock.update.return_value = fakes.FakeResource(
302
- None, registered_limit, loaded=True
391
+ updated_default_limit = 20
392
+ updated_registered_limit = sdk_fakes.generate_fake_resource(
393
+ resource_type=_registered_limit.RegisteredLimit,
394
+ id=self.registered_limit.id,
395
+ description=None,
396
+ region_id=None,
397
+ service_id=self.service.id,
398
+ default_limit=updated_default_limit,
399
+ resource_name=self.resource_name,
400
+ )
401
+ self.identity_sdk_client.update_registered_limit.return_value = (
402
+ updated_registered_limit
303
403
  )
304
404
 
305
405
  arglist = [
306
406
  '--default-limit',
307
- str(default_limit),
308
- identity_fakes.registered_limit_id,
407
+ str(updated_default_limit),
408
+ self.registered_limit.id,
309
409
  ]
310
410
  verifylist = [
311
- ('default_limit', default_limit),
312
- ('registered_limit_id', identity_fakes.registered_limit_id),
411
+ ('default_limit', updated_default_limit),
412
+ ('registered_limit_id', self.registered_limit.id),
313
413
  ]
314
414
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
315
415
 
316
416
  columns, data = self.cmd.take_action(parsed_args)
317
417
 
318
- self.registered_limit_mock.update.assert_called_with(
319
- identity_fakes.registered_limit_id,
320
- service=None,
321
- resource_name=None,
322
- default_limit=default_limit,
323
- description=None,
324
- region=None,
418
+ self.identity_sdk_client.update_registered_limit.assert_called_with(
419
+ self.registered_limit.id,
420
+ default_limit=updated_default_limit,
325
421
  )
326
422
 
327
423
  collist = (
@@ -334,43 +430,46 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
334
430
  )
335
431
  self.assertEqual(collist, columns)
336
432
  datalist = (
337
- default_limit,
433
+ updated_default_limit,
338
434
  None,
339
- identity_fakes.registered_limit_id,
435
+ self.registered_limit.id,
340
436
  None,
341
- identity_fakes.registered_limit_resource_name,
342
- identity_fakes.service_id,
437
+ self.resource_name,
438
+ self.service.id,
343
439
  )
344
440
  self.assertEqual(datalist, data)
345
441
 
346
442
  def test_registered_limit_set_resource_name(self):
347
- registered_limit = copy.deepcopy(identity_fakes.REGISTERED_LIMIT)
348
- resource_name = 'volumes'
349
- registered_limit['resource_name'] = resource_name
350
- self.registered_limit_mock.update.return_value = fakes.FakeResource(
351
- None, registered_limit, loaded=True
443
+ updated_resource_name = 'volumes'
444
+ updated_registered_limit = sdk_fakes.generate_fake_resource(
445
+ resource_type=_registered_limit.RegisteredLimit,
446
+ id=self.registered_limit.id,
447
+ description=None,
448
+ region_id=None,
449
+ service_id=self.service.id,
450
+ default_limit=self.default_limit,
451
+ resource_name=updated_resource_name,
452
+ )
453
+ self.identity_sdk_client.update_registered_limit.return_value = (
454
+ updated_registered_limit
352
455
  )
353
456
 
354
457
  arglist = [
355
458
  '--resource-name',
356
- resource_name,
357
- identity_fakes.registered_limit_id,
459
+ updated_resource_name,
460
+ self.registered_limit.id,
358
461
  ]
359
462
  verifylist = [
360
- ('resource_name', resource_name),
361
- ('registered_limit_id', identity_fakes.registered_limit_id),
463
+ ('resource_name', updated_resource_name),
464
+ ('registered_limit_id', self.registered_limit.id),
362
465
  ]
363
466
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
364
467
 
365
468
  columns, data = self.cmd.take_action(parsed_args)
366
469
 
367
- self.registered_limit_mock.update.assert_called_with(
368
- identity_fakes.registered_limit_id,
369
- service=None,
370
- resource_name=resource_name,
371
- default_limit=None,
372
- description=None,
373
- region=None,
470
+ self.identity_sdk_client.update_registered_limit.assert_called_with(
471
+ self.registered_limit.id,
472
+ resource_name=updated_resource_name,
374
473
  )
375
474
 
376
475
  collist = (
@@ -383,40 +482,43 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
383
482
  )
384
483
  self.assertEqual(collist, columns)
385
484
  datalist = (
386
- identity_fakes.registered_limit_default_limit,
485
+ self.default_limit,
387
486
  None,
388
- identity_fakes.registered_limit_id,
487
+ self.registered_limit.id,
389
488
  None,
390
- resource_name,
391
- identity_fakes.service_id,
489
+ updated_resource_name,
490
+ self.service.id,
392
491
  )
393
492
  self.assertEqual(datalist, data)
394
493
 
395
494
  def test_registered_limit_set_service(self):
396
- registered_limit = copy.deepcopy(identity_fakes.REGISTERED_LIMIT)
397
- service = identity_fakes.FakeService.create_one_service()
398
- registered_limit['service_id'] = service.id
399
- self.registered_limit_mock.update.return_value = fakes.FakeResource(
400
- None, registered_limit, loaded=True
495
+ updated_service = sdk_fakes.generate_fake_resource(_service.Service)
496
+ self.identity_sdk_client.find_service.return_value = updated_service
497
+ updated_registered_limit = sdk_fakes.generate_fake_resource(
498
+ resource_type=_registered_limit.RegisteredLimit,
499
+ id=self.registered_limit.id,
500
+ description=None,
501
+ region_id=None,
502
+ service_id=updated_service.id,
503
+ default_limit=self.default_limit,
504
+ resource_name=self.resource_name,
505
+ )
506
+ self.identity_sdk_client.update_registered_limit.return_value = (
507
+ updated_registered_limit
401
508
  )
402
- self.services_mock.get.return_value = service
403
509
 
404
- arglist = ['--service', service.id, identity_fakes.registered_limit_id]
510
+ arglist = ['--service', updated_service.id, self.registered_limit.id]
405
511
  verifylist = [
406
- ('service', service.id),
407
- ('registered_limit_id', identity_fakes.registered_limit_id),
512
+ ('service', updated_service.id),
513
+ ('registered_limit_id', self.registered_limit.id),
408
514
  ]
409
515
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
410
516
 
411
517
  columns, data = self.cmd.take_action(parsed_args)
412
518
 
413
- self.registered_limit_mock.update.assert_called_with(
414
- identity_fakes.registered_limit_id,
415
- service=service,
416
- resource_name=None,
417
- default_limit=None,
418
- description=None,
419
- region=None,
519
+ self.identity_sdk_client.update_registered_limit.assert_called_with(
520
+ self.registered_limit.id,
521
+ service_id=updated_service.id,
420
522
  )
421
523
 
422
524
  collist = (
@@ -429,42 +531,43 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
429
531
  )
430
532
  self.assertEqual(collist, columns)
431
533
  datalist = (
432
- identity_fakes.registered_limit_default_limit,
534
+ self.default_limit,
433
535
  None,
434
- identity_fakes.registered_limit_id,
536
+ self.registered_limit.id,
435
537
  None,
436
- identity_fakes.registered_limit_resource_name,
437
- service.id,
538
+ self.resource_name,
539
+ updated_service.id,
438
540
  )
439
541
  self.assertEqual(datalist, data)
440
542
 
441
543
  def test_registered_limit_set_region(self):
442
- registered_limit = copy.deepcopy(identity_fakes.REGISTERED_LIMIT)
443
- region = identity_fakes.REGION
444
- region['id'] = 'RegionTwo'
445
- region = fakes.FakeResource(None, copy.deepcopy(region), loaded=True)
446
- registered_limit['region_id'] = region.id
447
- self.registered_limit_mock.update.return_value = fakes.FakeResource(
448
- None, registered_limit, loaded=True
544
+ updated_region = sdk_fakes.generate_fake_resource(_region.Region)
545
+ self.identity_sdk_client.get_region.return_value = updated_region
546
+ updated_registered_limit = sdk_fakes.generate_fake_resource(
547
+ resource_type=_registered_limit.RegisteredLimit,
548
+ id=self.registered_limit.id,
549
+ description=None,
550
+ region_id=updated_region.id,
551
+ service_id=self.service.id,
552
+ default_limit=self.default_limit,
553
+ resource_name=self.resource_name,
554
+ )
555
+ self.identity_sdk_client.update_registered_limit.return_value = (
556
+ updated_registered_limit
449
557
  )
450
- self.regions_mock.get.return_value = region
451
558
 
452
- arglist = ['--region', region.id, identity_fakes.registered_limit_id]
559
+ arglist = ['--region', updated_region.id, self.registered_limit.id]
453
560
  verifylist = [
454
- ('region', region.id),
455
- ('registered_limit_id', identity_fakes.registered_limit_id),
561
+ ('region', updated_region.id),
562
+ ('registered_limit_id', self.registered_limit.id),
456
563
  ]
457
564
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
458
565
 
459
566
  columns, data = self.cmd.take_action(parsed_args)
460
567
 
461
- self.registered_limit_mock.update.assert_called_with(
462
- identity_fakes.registered_limit_id,
463
- service=None,
464
- resource_name=None,
465
- default_limit=None,
466
- description=None,
467
- region=region,
568
+ self.identity_sdk_client.update_registered_limit.assert_called_with(
569
+ self.registered_limit.id,
570
+ region_id=updated_region.id,
468
571
  )
469
572
 
470
573
  collist = (
@@ -477,54 +580,86 @@ class TestRegisteredLimitSet(TestRegisteredLimit):
477
580
  )
478
581
  self.assertEqual(collist, columns)
479
582
  datalist = (
480
- identity_fakes.registered_limit_default_limit,
583
+ self.default_limit,
481
584
  None,
482
- identity_fakes.registered_limit_id,
483
- region.id,
484
- identity_fakes.registered_limit_resource_name,
485
- identity_fakes.service_id,
585
+ self.registered_limit.id,
586
+ updated_region.id,
587
+ self.resource_name,
588
+ self.service.id,
486
589
  )
487
590
  self.assertEqual(datalist, data)
488
591
 
489
592
 
490
- class TestRegisteredLimitList(TestRegisteredLimit):
593
+ class TestRegisteredLimitList(identity_fakes.TestIdentityv3):
491
594
  def setUp(self):
492
595
  super().setUp()
493
596
 
494
- self.registered_limit_mock.get.return_value = fakes.FakeResource(
495
- None, copy.deepcopy(identity_fakes.REGISTERED_LIMIT), loaded=True
496
- )
597
+ self.service = sdk_fakes.generate_fake_resource(_service.Service)
598
+ self.region = sdk_fakes.generate_fake_resource(_region.Region)
497
599
 
498
- self.cmd = registered_limit.ShowRegisteredLimit(self.app, None)
600
+ self.description = 'default limit of foobars'
601
+ self.default_limit = 10
602
+ self.resource_name = 'foobars'
499
603
 
500
- def test_limit_show(self):
501
- arglist = [identity_fakes.registered_limit_id]
502
- verifylist = [
503
- ('registered_limit_id', identity_fakes.registered_limit_id)
604
+ self.identity_sdk_client.find_service.return_value = self.service
605
+ self.identity_sdk_client.get_region.return_value = self.region
606
+
607
+ self.registered_limit = sdk_fakes.generate_fake_resource(
608
+ resource_type=_registered_limit.RegisteredLimit,
609
+ description=None,
610
+ region_id=None,
611
+ service_id=self.service.id,
612
+ default_limit=self.default_limit,
613
+ resource_name=self.resource_name,
614
+ )
615
+ self.registered_limit_with_options = sdk_fakes.generate_fake_resource(
616
+ resource_type=_registered_limit.RegisteredLimit,
617
+ description=self.description,
618
+ region_id=self.region.id,
619
+ service_id=self.service.id,
620
+ default_limit=self.default_limit,
621
+ resource_name=self.resource_name,
622
+ )
623
+ self.identity_sdk_client.registered_limits.return_value = [
624
+ self.registered_limit,
625
+ self.registered_limit_with_options,
504
626
  ]
627
+
628
+ self.cmd = registered_limit.ListRegisteredLimit(self.app, None)
629
+
630
+ def test_registered_limit_list(self):
631
+ arglist = []
632
+ verifylist = []
505
633
  parsed_args = self.check_parser(self.cmd, arglist, verifylist)
506
634
 
507
635
  columns, data = self.cmd.take_action(parsed_args)
508
636
 
509
- self.registered_limit_mock.get.assert_called_with(
510
- identity_fakes.registered_limit_id
511
- )
512
-
637
+ self.identity_sdk_client.registered_limits.assert_called_with()
513
638
  collist = (
514
- 'default_limit',
515
- 'description',
516
- 'id',
517
- 'region_id',
518
- 'resource_name',
519
- 'service_id',
639
+ "ID",
640
+ "Service ID",
641
+ "Resource Name",
642
+ "Default Limit",
643
+ "Description",
644
+ "Region ID",
520
645
  )
521
646
  self.assertEqual(collist, columns)
522
647
  datalist = (
523
- identity_fakes.registered_limit_default_limit,
524
- None,
525
- identity_fakes.registered_limit_id,
526
- None,
527
- identity_fakes.registered_limit_resource_name,
528
- identity_fakes.service_id,
529
- )
530
- self.assertEqual(datalist, data)
648
+ (
649
+ self.registered_limit.id,
650
+ self.service.id,
651
+ self.resource_name,
652
+ self.default_limit,
653
+ None,
654
+ None,
655
+ ),
656
+ (
657
+ self.registered_limit_with_options.id,
658
+ self.service.id,
659
+ self.resource_name,
660
+ self.default_limit,
661
+ self.description,
662
+ self.region.id,
663
+ ),
664
+ )
665
+ self.assertEqual(datalist, tuple(data))