python-openstackclient 7.2.1__py3-none-any.whl → 7.3.1__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.
- openstackclient/common/limits.py +1 -1
- openstackclient/common/quota.py +7 -2
- openstackclient/compute/v2/server.py +38 -22
- openstackclient/compute/v2/usage.py +2 -2
- openstackclient/identity/common.py +22 -34
- openstackclient/identity/v3/credential.py +45 -28
- openstackclient/identity/v3/limit.py +15 -0
- openstackclient/identity/v3/region.py +23 -22
- openstackclient/identity/v3/registered_limit.py +18 -0
- openstackclient/identity/v3/role.py +287 -117
- openstackclient/identity/v3/role_assignment.py +1 -1
- openstackclient/identity/v3/service_provider.py +95 -45
- openstackclient/identity/v3/trust.py +114 -75
- openstackclient/image/v2/image.py +3 -0
- openstackclient/network/v2/network.py +33 -0
- openstackclient/network/v2/network_flavor_profile.py +1 -17
- openstackclient/network/v2/port.py +75 -20
- openstackclient/tests/functional/compute/v2/test_server.py +87 -1
- openstackclient/tests/functional/identity/v3/common.py +1 -1
- openstackclient/tests/functional/identity/v3/test_application_credential.py +2 -1
- openstackclient/tests/functional/identity/v3/test_role.py +24 -0
- openstackclient/tests/functional/identity/v3/test_role_assignment.py +8 -0
- openstackclient/tests/functional/identity/v3/test_service_provider.py +1 -5
- openstackclient/tests/functional/network/v2/test_port.py +107 -1
- openstackclient/tests/unit/compute/v2/fakes.py +0 -304
- openstackclient/tests/unit/compute/v2/test_aggregate.py +40 -31
- openstackclient/tests/unit/compute/v2/test_console.py +7 -3
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +60 -53
- openstackclient/tests/unit/compute/v2/test_keypair.py +57 -69
- openstackclient/tests/unit/compute/v2/test_server.py +63 -5
- openstackclient/tests/unit/compute/v2/test_server_group.py +99 -105
- openstackclient/tests/unit/compute/v2/test_server_volume.py +12 -5
- openstackclient/tests/unit/compute/v2/test_service.py +83 -37
- openstackclient/tests/unit/compute/v2/test_usage.py +12 -7
- openstackclient/tests/unit/identity/v2_0/test_catalog.py +3 -6
- openstackclient/tests/unit/identity/v2_0/test_role.py +1 -2
- openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +2 -1
- openstackclient/tests/unit/identity/v2_0/test_token.py +6 -20
- openstackclient/tests/unit/identity/v3/test_catalog.py +2 -5
- openstackclient/tests/unit/identity/v3/test_credential.py +74 -63
- openstackclient/tests/unit/identity/v3/test_project.py +1 -3
- openstackclient/tests/unit/identity/v3/test_region.py +74 -96
- openstackclient/tests/unit/identity/v3/test_role.py +679 -603
- openstackclient/tests/unit/identity/v3/test_role_assignment.py +263 -1
- openstackclient/tests/unit/identity/v3/test_service_provider.py +159 -209
- openstackclient/tests/unit/identity/v3/test_token.py +5 -20
- openstackclient/tests/unit/identity/v3/test_trust.py +137 -155
- openstackclient/tests/unit/image/v2/test_image.py +6 -0
- openstackclient/tests/unit/network/v2/fakes.py +3 -0
- openstackclient/tests/unit/network/v2/test_network.py +25 -0
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +0 -35
- openstackclient/tests/unit/network/v2/test_port.py +128 -15
- openstackclient/tests/unit/utils.py +8 -2
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +31 -13
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +34 -13
- openstackclient/volume/v2/volume_backup.py +11 -2
- openstackclient/volume/v3/volume_backup.py +13 -2
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/AUTHORS +2 -0
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/METADATA +14 -16
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/RECORD +65 -65
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/WHEEL +1 -1
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/entry_points.txt +0 -1
- python_openstackclient-7.3.1.dist-info/pbr.json +1 -0
- python_openstackclient-7.2.1.dist-info/pbr.json +0 -1
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/LICENSE +0 -0
- {python_openstackclient-7.2.1.dist-info → python_openstackclient-7.3.1.dist-info}/top_level.txt +0 -0
|
@@ -10,9 +10,13 @@
|
|
|
10
10
|
# License for the specific language governing permissions and limitations
|
|
11
11
|
# under the License.
|
|
12
12
|
|
|
13
|
-
from unittest import mock
|
|
14
13
|
from unittest.mock import call
|
|
15
14
|
|
|
15
|
+
from openstack import exceptions as sdk_exceptions
|
|
16
|
+
from openstack.identity.v3 import credential as _credential
|
|
17
|
+
from openstack.identity.v3 import project as _project
|
|
18
|
+
from openstack.identity.v3 import user as _user
|
|
19
|
+
from openstack.test import fakes as sdk_fakes
|
|
16
20
|
from osc_lib import exceptions
|
|
17
21
|
|
|
18
22
|
from openstackclient.identity.v3 import credential
|
|
@@ -20,26 +24,9 @@ from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
|
20
24
|
from openstackclient.tests.unit import utils
|
|
21
25
|
|
|
22
26
|
|
|
23
|
-
class
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
# Get a shortcut to the CredentialManager Mock
|
|
28
|
-
self.credentials_mock = self.identity_client.credentials
|
|
29
|
-
self.credentials_mock.reset_mock()
|
|
30
|
-
|
|
31
|
-
# Get a shortcut to the UserManager Mock
|
|
32
|
-
self.users_mock = self.identity_client.users
|
|
33
|
-
self.users_mock.reset_mock()
|
|
34
|
-
|
|
35
|
-
# Get a shortcut to the ProjectManager Mock
|
|
36
|
-
self.projects_mock = self.identity_client.projects
|
|
37
|
-
self.projects_mock.reset_mock()
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class TestCredentialCreate(TestCredential):
|
|
41
|
-
user = identity_fakes.FakeUser.create_one_user()
|
|
42
|
-
project = identity_fakes.FakeProject.create_one_project()
|
|
27
|
+
class TestCredentialCreate(identity_fakes.TestIdentityv3):
|
|
28
|
+
user = sdk_fakes.generate_fake_resource(_user.User)
|
|
29
|
+
project = sdk_fakes.generate_fake_resource(_project.Project)
|
|
43
30
|
columns = (
|
|
44
31
|
'blob',
|
|
45
32
|
'id',
|
|
@@ -51,12 +38,17 @@ class TestCredentialCreate(TestCredential):
|
|
|
51
38
|
def setUp(self):
|
|
52
39
|
super().setUp()
|
|
53
40
|
|
|
54
|
-
self.credential =
|
|
55
|
-
|
|
41
|
+
self.credential = sdk_fakes.generate_fake_resource(
|
|
42
|
+
resource_type=_credential.Credential,
|
|
43
|
+
user_id=self.user.id,
|
|
44
|
+
project_id=self.project.id,
|
|
45
|
+
type='cert',
|
|
56
46
|
)
|
|
57
|
-
self.
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
self.identity_sdk_client.create_credential.return_value = (
|
|
48
|
+
self.credential
|
|
49
|
+
)
|
|
50
|
+
self.identity_sdk_client.find_user.return_value = self.user
|
|
51
|
+
self.identity_sdk_client.find_project.return_value = self.project
|
|
60
52
|
self.data = (
|
|
61
53
|
self.credential.blob,
|
|
62
54
|
self.credential.id,
|
|
@@ -86,7 +78,9 @@ class TestCredentialCreate(TestCredential):
|
|
|
86
78
|
'blob': self.credential.blob,
|
|
87
79
|
'project': None,
|
|
88
80
|
}
|
|
89
|
-
self.
|
|
81
|
+
self.identity_sdk_client.create_credential.assert_called_once_with(
|
|
82
|
+
**kwargs
|
|
83
|
+
)
|
|
90
84
|
|
|
91
85
|
self.assertEqual(self.columns, columns)
|
|
92
86
|
self.assertEqual(self.data, data)
|
|
@@ -116,42 +110,48 @@ class TestCredentialCreate(TestCredential):
|
|
|
116
110
|
'blob': self.credential.blob,
|
|
117
111
|
'project': self.credential.project_id,
|
|
118
112
|
}
|
|
119
|
-
self.
|
|
113
|
+
self.identity_sdk_client.create_credential.assert_called_once_with(
|
|
114
|
+
**kwargs
|
|
115
|
+
)
|
|
120
116
|
|
|
121
117
|
self.assertEqual(self.columns, columns)
|
|
122
118
|
self.assertEqual(self.data, data)
|
|
123
119
|
|
|
124
120
|
|
|
125
|
-
class TestCredentialDelete(
|
|
126
|
-
credentials = identity_fakes.FakeCredential.create_credentials(count=2)
|
|
127
|
-
|
|
121
|
+
class TestCredentialDelete(identity_fakes.TestIdentityv3):
|
|
128
122
|
def setUp(self):
|
|
129
123
|
super().setUp()
|
|
130
124
|
|
|
131
|
-
self.
|
|
125
|
+
self.identity_sdk_client.delete_credential.return_value = None
|
|
132
126
|
|
|
133
127
|
# Get the command object to test
|
|
134
128
|
self.cmd = credential.DeleteCredential(self.app, None)
|
|
135
129
|
|
|
136
130
|
def test_credential_delete(self):
|
|
131
|
+
credential = sdk_fakes.generate_fake_resource(
|
|
132
|
+
_credential.Credential,
|
|
133
|
+
)
|
|
137
134
|
arglist = [
|
|
138
|
-
|
|
135
|
+
credential.id,
|
|
139
136
|
]
|
|
140
137
|
verifylist = [
|
|
141
|
-
('credential', [
|
|
138
|
+
('credential', [credential.id]),
|
|
142
139
|
]
|
|
143
140
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
144
141
|
|
|
145
142
|
result = self.cmd.take_action(parsed_args)
|
|
146
143
|
|
|
147
|
-
self.
|
|
148
|
-
|
|
144
|
+
self.identity_sdk_client.delete_credential.assert_called_with(
|
|
145
|
+
credential.id,
|
|
149
146
|
)
|
|
150
147
|
self.assertIsNone(result)
|
|
151
148
|
|
|
152
149
|
def test_credential_multi_delete(self):
|
|
150
|
+
credentials = sdk_fakes.generate_fake_resources(
|
|
151
|
+
_credential.Credential, count=2
|
|
152
|
+
)
|
|
153
153
|
arglist = []
|
|
154
|
-
for c in
|
|
154
|
+
for c in credentials:
|
|
155
155
|
arglist.append(c.id)
|
|
156
156
|
verifylist = [
|
|
157
157
|
('credential', arglist),
|
|
@@ -161,25 +161,26 @@ class TestCredentialDelete(TestCredential):
|
|
|
161
161
|
result = self.cmd.take_action(parsed_args)
|
|
162
162
|
|
|
163
163
|
calls = []
|
|
164
|
-
for c in
|
|
164
|
+
for c in credentials:
|
|
165
165
|
calls.append(call(c.id))
|
|
166
|
-
self.
|
|
166
|
+
self.identity_sdk_client.delete_credential.assert_has_calls(calls)
|
|
167
167
|
self.assertIsNone(result)
|
|
168
168
|
|
|
169
169
|
def test_credential_multi_delete_with_exception(self):
|
|
170
|
+
credential = sdk_fakes.generate_fake_resource(
|
|
171
|
+
_credential.Credential,
|
|
172
|
+
)
|
|
170
173
|
arglist = [
|
|
171
|
-
|
|
174
|
+
credential.id,
|
|
172
175
|
'unexist_credential',
|
|
173
176
|
]
|
|
174
|
-
verifylist = [
|
|
175
|
-
('credential', [self.credentials[0].id, 'unexist_credential'])
|
|
176
|
-
]
|
|
177
|
+
verifylist = [('credential', [credential.id, 'unexist_credential'])]
|
|
177
178
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
178
179
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
self.identity_sdk_client.delete_credential.side_effect = [
|
|
181
|
+
None,
|
|
182
|
+
sdk_exceptions.NotFoundException,
|
|
183
|
+
]
|
|
183
184
|
|
|
184
185
|
try:
|
|
185
186
|
self.cmd.take_action(parsed_args)
|
|
@@ -187,12 +188,16 @@ class TestCredentialDelete(TestCredential):
|
|
|
187
188
|
except exceptions.CommandError as e:
|
|
188
189
|
self.assertEqual('1 of 2 credential failed to delete.', str(e))
|
|
189
190
|
|
|
190
|
-
self.
|
|
191
|
-
|
|
191
|
+
self.identity_sdk_client.delete_credential.assert_any_call(
|
|
192
|
+
credential.id
|
|
193
|
+
)
|
|
194
|
+
self.identity_sdk_client.delete_credential.assert_any_call(
|
|
195
|
+
'unexist_credential'
|
|
196
|
+
)
|
|
192
197
|
|
|
193
198
|
|
|
194
|
-
class TestCredentialList(
|
|
195
|
-
credential =
|
|
199
|
+
class TestCredentialList(identity_fakes.TestIdentityv3):
|
|
200
|
+
credential = sdk_fakes.generate_fake_resource(_credential.Credential)
|
|
196
201
|
|
|
197
202
|
columns = ('ID', 'Type', 'User ID', 'Data', 'Project ID')
|
|
198
203
|
data = (
|
|
@@ -208,10 +213,10 @@ class TestCredentialList(TestCredential):
|
|
|
208
213
|
def setUp(self):
|
|
209
214
|
super().setUp()
|
|
210
215
|
|
|
211
|
-
self.user =
|
|
212
|
-
self.
|
|
216
|
+
self.user = sdk_fakes.generate_fake_resource(_user.User)
|
|
217
|
+
self.identity_sdk_client.find_user.return_value = self.user
|
|
213
218
|
|
|
214
|
-
self.
|
|
219
|
+
self.identity_sdk_client.credentials.return_value = [self.credential]
|
|
215
220
|
|
|
216
221
|
# Get the command object to test
|
|
217
222
|
self.cmd = credential.ListCredential(self.app, None)
|
|
@@ -223,7 +228,7 @@ class TestCredentialList(TestCredential):
|
|
|
223
228
|
|
|
224
229
|
columns, data = self.cmd.take_action(parsed_args)
|
|
225
230
|
|
|
226
|
-
self.
|
|
231
|
+
self.identity_sdk_client.credentials.assert_called_with()
|
|
227
232
|
self.assertEqual(self.columns, columns)
|
|
228
233
|
self.assertEqual(self.data, tuple(data))
|
|
229
234
|
|
|
@@ -246,15 +251,17 @@ class TestCredentialList(TestCredential):
|
|
|
246
251
|
'user_id': self.user.id,
|
|
247
252
|
'type': self.credential.type,
|
|
248
253
|
}
|
|
249
|
-
self.
|
|
250
|
-
|
|
254
|
+
self.identity_sdk_client.find_user.assert_called_with(
|
|
255
|
+
self.credential.user_id, domain_id=None, ignore_missing=False
|
|
256
|
+
)
|
|
257
|
+
self.identity_sdk_client.credentials.assert_called_with(**kwargs)
|
|
251
258
|
|
|
252
259
|
self.assertEqual(self.columns, columns)
|
|
253
260
|
self.assertEqual(self.data, tuple(data))
|
|
254
261
|
|
|
255
262
|
|
|
256
|
-
class TestCredentialSet(
|
|
257
|
-
credential =
|
|
263
|
+
class TestCredentialSet(identity_fakes.TestIdentityv3):
|
|
264
|
+
credential = sdk_fakes.generate_fake_resource(_credential.Credential)
|
|
258
265
|
|
|
259
266
|
def setUp(self):
|
|
260
267
|
super().setUp()
|
|
@@ -343,7 +350,7 @@ class TestCredentialSet(TestCredential):
|
|
|
343
350
|
self.assertIsNone(result)
|
|
344
351
|
|
|
345
352
|
|
|
346
|
-
class TestCredentialShow(
|
|
353
|
+
class TestCredentialShow(identity_fakes.TestIdentityv3):
|
|
347
354
|
columns = (
|
|
348
355
|
'blob',
|
|
349
356
|
'id',
|
|
@@ -355,8 +362,10 @@ class TestCredentialShow(TestCredential):
|
|
|
355
362
|
def setUp(self):
|
|
356
363
|
super().setUp()
|
|
357
364
|
|
|
358
|
-
self.credential =
|
|
359
|
-
|
|
365
|
+
self.credential = sdk_fakes.generate_fake_resource(
|
|
366
|
+
_credential.Credential
|
|
367
|
+
)
|
|
368
|
+
self.identity_sdk_client.get_credential.return_value = self.credential
|
|
360
369
|
self.data = (
|
|
361
370
|
self.credential.blob,
|
|
362
371
|
self.credential.id,
|
|
@@ -378,6 +387,8 @@ class TestCredentialShow(TestCredential):
|
|
|
378
387
|
|
|
379
388
|
columns, data = self.cmd.take_action(parsed_args)
|
|
380
389
|
|
|
381
|
-
self.
|
|
390
|
+
self.identity_sdk_client.get_credential.assert_called_once_with(
|
|
391
|
+
self.credential.id
|
|
392
|
+
)
|
|
382
393
|
self.assertEqual(self.columns, columns)
|
|
383
394
|
self.assertEqual(self.data, data)
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
12
12
|
# License for the specific language governing permissions and limitations
|
|
13
13
|
# under the License.
|
|
14
|
-
#
|
|
15
14
|
|
|
16
15
|
from unittest import mock
|
|
17
16
|
from unittest.mock import call
|
|
@@ -914,8 +913,7 @@ class TestProjectList(TestProject):
|
|
|
914
913
|
auth_ref = identity_fakes.fake_auth_ref(
|
|
915
914
|
identity_fakes.TOKEN_WITH_PROJECT_ID,
|
|
916
915
|
)
|
|
917
|
-
|
|
918
|
-
type(self.app.client_manager).auth_ref = ar_mock
|
|
916
|
+
self.app.client_manager.auth_ref = auth_ref
|
|
919
917
|
|
|
920
918
|
arglist = [
|
|
921
919
|
'--my-projects',
|
|
@@ -11,55 +11,44 @@
|
|
|
11
11
|
# under the License.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
from openstack.identity.v3 import region as _region
|
|
16
|
+
from openstack.test import fakes as sdk_fakes
|
|
15
17
|
|
|
16
18
|
from openstackclient.identity.v3 import region
|
|
17
|
-
from openstackclient.tests.unit import fakes
|
|
18
19
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
19
20
|
|
|
20
21
|
|
|
21
|
-
class
|
|
22
|
-
|
|
23
|
-
super().setUp()
|
|
24
|
-
|
|
25
|
-
# Get a shortcut to the RegionManager Mock
|
|
26
|
-
self.regions_mock = self.identity_client.regions
|
|
27
|
-
self.regions_mock.reset_mock()
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
class TestRegionCreate(TestRegion):
|
|
22
|
+
class TestRegionCreate(identity_fakes.TestIdentityv3):
|
|
23
|
+
region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
31
24
|
columns = (
|
|
25
|
+
'region',
|
|
32
26
|
'description',
|
|
33
27
|
'parent_region',
|
|
34
|
-
'region',
|
|
35
28
|
)
|
|
36
29
|
datalist = (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
region.id,
|
|
31
|
+
region.description,
|
|
32
|
+
region.parent_region_id,
|
|
40
33
|
)
|
|
41
34
|
|
|
42
35
|
def setUp(self):
|
|
43
36
|
super().setUp()
|
|
44
37
|
|
|
45
|
-
self.
|
|
46
|
-
None,
|
|
47
|
-
copy.deepcopy(identity_fakes.REGION),
|
|
48
|
-
loaded=True,
|
|
49
|
-
)
|
|
38
|
+
self.identity_sdk_client.create_region.return_value = self.region
|
|
50
39
|
|
|
51
40
|
# Get the command object to test
|
|
52
41
|
self.cmd = region.CreateRegion(self.app, None)
|
|
53
42
|
|
|
54
43
|
def test_region_create_description(self):
|
|
55
44
|
arglist = [
|
|
56
|
-
|
|
45
|
+
self.region.id,
|
|
57
46
|
'--description',
|
|
58
|
-
|
|
47
|
+
self.region.description,
|
|
59
48
|
]
|
|
60
49
|
verifylist = [
|
|
61
|
-
('region',
|
|
62
|
-
('description',
|
|
50
|
+
('region', self.region.id),
|
|
51
|
+
('description', self.region.description),
|
|
63
52
|
]
|
|
64
53
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
65
54
|
|
|
@@ -70,21 +59,21 @@ class TestRegionCreate(TestRegion):
|
|
|
70
59
|
|
|
71
60
|
# Set expected values
|
|
72
61
|
kwargs = {
|
|
73
|
-
'description':
|
|
74
|
-
'id':
|
|
75
|
-
'
|
|
62
|
+
'description': self.region.description,
|
|
63
|
+
'id': self.region.id,
|
|
64
|
+
'parent_region_id': None,
|
|
76
65
|
}
|
|
77
|
-
self.
|
|
66
|
+
self.identity_sdk_client.create_region.assert_called_with(**kwargs)
|
|
78
67
|
|
|
79
68
|
self.assertEqual(self.columns, columns)
|
|
80
69
|
self.assertEqual(self.datalist, data)
|
|
81
70
|
|
|
82
71
|
def test_region_create_no_options(self):
|
|
83
72
|
arglist = [
|
|
84
|
-
|
|
73
|
+
self.region.id,
|
|
85
74
|
]
|
|
86
75
|
verifylist = [
|
|
87
|
-
('region',
|
|
76
|
+
('region', self.region.id),
|
|
88
77
|
]
|
|
89
78
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
90
79
|
|
|
@@ -96,23 +85,23 @@ class TestRegionCreate(TestRegion):
|
|
|
96
85
|
# Set expected values
|
|
97
86
|
kwargs = {
|
|
98
87
|
'description': None,
|
|
99
|
-
'id':
|
|
100
|
-
'
|
|
88
|
+
'id': self.region.id,
|
|
89
|
+
'parent_region_id': None,
|
|
101
90
|
}
|
|
102
|
-
self.
|
|
91
|
+
self.identity_sdk_client.create_region.assert_called_with(**kwargs)
|
|
103
92
|
|
|
104
93
|
self.assertEqual(self.columns, columns)
|
|
105
94
|
self.assertEqual(self.datalist, data)
|
|
106
95
|
|
|
107
96
|
def test_region_create_parent_region_id(self):
|
|
108
97
|
arglist = [
|
|
109
|
-
|
|
98
|
+
self.region.id,
|
|
110
99
|
'--parent-region',
|
|
111
|
-
|
|
100
|
+
self.region.parent_region_id,
|
|
112
101
|
]
|
|
113
102
|
verifylist = [
|
|
114
|
-
('region',
|
|
115
|
-
('parent_region',
|
|
103
|
+
('region', self.region.id),
|
|
104
|
+
('parent_region', self.region.parent_region_id),
|
|
116
105
|
]
|
|
117
106
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
118
107
|
|
|
@@ -124,41 +113,43 @@ class TestRegionCreate(TestRegion):
|
|
|
124
113
|
# Set expected values
|
|
125
114
|
kwargs = {
|
|
126
115
|
'description': None,
|
|
127
|
-
'id':
|
|
128
|
-
'
|
|
116
|
+
'id': self.region.id,
|
|
117
|
+
'parent_region_id': self.region.parent_region_id,
|
|
129
118
|
}
|
|
130
|
-
self.
|
|
119
|
+
self.identity_sdk_client.create_region.assert_called_with(**kwargs)
|
|
131
120
|
self.assertEqual(self.columns, columns)
|
|
132
121
|
self.assertEqual(self.datalist, data)
|
|
133
122
|
|
|
134
123
|
|
|
135
|
-
class TestRegionDelete(
|
|
124
|
+
class TestRegionDelete(identity_fakes.TestIdentityv3):
|
|
136
125
|
def setUp(self):
|
|
137
126
|
super().setUp()
|
|
138
127
|
|
|
139
|
-
self.
|
|
128
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
129
|
+
self.identity_sdk_client.delete_region.return_value = None
|
|
140
130
|
|
|
141
131
|
# Get the command object to test
|
|
142
132
|
self.cmd = region.DeleteRegion(self.app, None)
|
|
143
133
|
|
|
144
134
|
def test_region_delete_no_options(self):
|
|
145
135
|
arglist = [
|
|
146
|
-
|
|
136
|
+
self.region.id,
|
|
147
137
|
]
|
|
148
138
|
verifylist = [
|
|
149
|
-
('region', [
|
|
139
|
+
('region', [self.region.id]),
|
|
150
140
|
]
|
|
151
141
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
152
142
|
|
|
153
143
|
result = self.cmd.take_action(parsed_args)
|
|
154
144
|
|
|
155
|
-
self.
|
|
156
|
-
|
|
145
|
+
self.identity_sdk_client.delete_region.assert_called_with(
|
|
146
|
+
self.region.id,
|
|
157
147
|
)
|
|
158
148
|
self.assertIsNone(result)
|
|
159
149
|
|
|
160
150
|
|
|
161
|
-
class TestRegionList(
|
|
151
|
+
class TestRegionList(identity_fakes.TestIdentityv3):
|
|
152
|
+
region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
162
153
|
columns = (
|
|
163
154
|
'Region',
|
|
164
155
|
'Parent Region',
|
|
@@ -166,22 +157,16 @@ class TestRegionList(TestRegion):
|
|
|
166
157
|
)
|
|
167
158
|
datalist = (
|
|
168
159
|
(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
160
|
+
region.id,
|
|
161
|
+
region.parent_region_id,
|
|
162
|
+
region.description,
|
|
172
163
|
),
|
|
173
164
|
)
|
|
174
165
|
|
|
175
166
|
def setUp(self):
|
|
176
167
|
super().setUp()
|
|
177
168
|
|
|
178
|
-
self.
|
|
179
|
-
fakes.FakeResource(
|
|
180
|
-
None,
|
|
181
|
-
copy.deepcopy(identity_fakes.REGION),
|
|
182
|
-
loaded=True,
|
|
183
|
-
),
|
|
184
|
-
]
|
|
169
|
+
self.identity_sdk_client.regions.return_value = [self.region]
|
|
185
170
|
|
|
186
171
|
# Get the command object to test
|
|
187
172
|
self.cmd = region.ListRegion(self.app, None)
|
|
@@ -195,7 +180,7 @@ class TestRegionList(TestRegion):
|
|
|
195
180
|
# returns a tuple containing the column names and an iterable
|
|
196
181
|
# containing the data to be listed.
|
|
197
182
|
columns, data = self.cmd.take_action(parsed_args)
|
|
198
|
-
self.
|
|
183
|
+
self.identity_sdk_client.regions.assert_called_with()
|
|
199
184
|
|
|
200
185
|
self.assertEqual(self.columns, columns)
|
|
201
186
|
self.assertEqual(self.datalist, tuple(data))
|
|
@@ -203,10 +188,10 @@ class TestRegionList(TestRegion):
|
|
|
203
188
|
def test_region_list_parent_region_id(self):
|
|
204
189
|
arglist = [
|
|
205
190
|
'--parent-region',
|
|
206
|
-
|
|
191
|
+
self.region.parent_region_id,
|
|
207
192
|
]
|
|
208
193
|
verifylist = [
|
|
209
|
-
('parent_region',
|
|
194
|
+
('parent_region', self.region.parent_region_id),
|
|
210
195
|
]
|
|
211
196
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
212
197
|
|
|
@@ -214,41 +199,37 @@ class TestRegionList(TestRegion):
|
|
|
214
199
|
# returns a tuple containing the column names and an iterable
|
|
215
200
|
# containing the data to be listed.
|
|
216
201
|
columns, data = self.cmd.take_action(parsed_args)
|
|
217
|
-
self.
|
|
218
|
-
parent_region_id=
|
|
202
|
+
self.identity_sdk_client.regions.assert_called_with(
|
|
203
|
+
parent_region_id=self.region.parent_region_id
|
|
219
204
|
)
|
|
220
205
|
|
|
221
206
|
self.assertEqual(self.columns, columns)
|
|
222
207
|
self.assertEqual(self.datalist, tuple(data))
|
|
223
208
|
|
|
224
209
|
|
|
225
|
-
class TestRegionSet(
|
|
210
|
+
class TestRegionSet(identity_fakes.TestIdentityv3):
|
|
226
211
|
def setUp(self):
|
|
227
212
|
super().setUp()
|
|
228
213
|
|
|
229
|
-
self.
|
|
230
|
-
None,
|
|
231
|
-
copy.deepcopy(identity_fakes.REGION),
|
|
232
|
-
loaded=True,
|
|
233
|
-
)
|
|
214
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
234
215
|
|
|
235
216
|
# Get the command object to test
|
|
236
217
|
self.cmd = region.SetRegion(self.app, None)
|
|
237
218
|
|
|
238
219
|
def test_region_set_no_options(self):
|
|
239
220
|
arglist = [
|
|
240
|
-
|
|
221
|
+
self.region.id,
|
|
241
222
|
]
|
|
242
223
|
verifylist = [
|
|
243
|
-
('region',
|
|
224
|
+
('region', self.region.id),
|
|
244
225
|
]
|
|
245
226
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
246
227
|
|
|
247
228
|
result = self.cmd.take_action(parsed_args)
|
|
248
229
|
|
|
249
230
|
kwargs = {}
|
|
250
|
-
self.
|
|
251
|
-
|
|
231
|
+
self.identity_sdk_client.update_region.assert_called_with(
|
|
232
|
+
self.region.id, **kwargs
|
|
252
233
|
)
|
|
253
234
|
self.assertIsNone(result)
|
|
254
235
|
|
|
@@ -256,11 +237,11 @@ class TestRegionSet(TestRegion):
|
|
|
256
237
|
arglist = [
|
|
257
238
|
'--description',
|
|
258
239
|
'qwerty',
|
|
259
|
-
|
|
240
|
+
self.region.id,
|
|
260
241
|
]
|
|
261
242
|
verifylist = [
|
|
262
243
|
('description', 'qwerty'),
|
|
263
|
-
('region',
|
|
244
|
+
('region', self.region.id),
|
|
264
245
|
]
|
|
265
246
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
266
247
|
|
|
@@ -270,8 +251,8 @@ class TestRegionSet(TestRegion):
|
|
|
270
251
|
kwargs = {
|
|
271
252
|
'description': 'qwerty',
|
|
272
253
|
}
|
|
273
|
-
self.
|
|
274
|
-
|
|
254
|
+
self.identity_sdk_client.update_region.assert_called_with(
|
|
255
|
+
self.region.id, **kwargs
|
|
275
256
|
)
|
|
276
257
|
self.assertIsNone(result)
|
|
277
258
|
|
|
@@ -279,11 +260,11 @@ class TestRegionSet(TestRegion):
|
|
|
279
260
|
arglist = [
|
|
280
261
|
'--parent-region',
|
|
281
262
|
'new_parent',
|
|
282
|
-
|
|
263
|
+
self.region.id,
|
|
283
264
|
]
|
|
284
265
|
verifylist = [
|
|
285
266
|
('parent_region', 'new_parent'),
|
|
286
|
-
('region',
|
|
267
|
+
('region', self.region.id),
|
|
287
268
|
]
|
|
288
269
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
289
270
|
|
|
@@ -291,33 +272,30 @@ class TestRegionSet(TestRegion):
|
|
|
291
272
|
|
|
292
273
|
# Set expected values
|
|
293
274
|
kwargs = {
|
|
294
|
-
'
|
|
275
|
+
'parent_region_id': 'new_parent',
|
|
295
276
|
}
|
|
296
|
-
self.
|
|
297
|
-
|
|
277
|
+
self.identity_sdk_client.update_region.assert_called_with(
|
|
278
|
+
self.region.id, **kwargs
|
|
298
279
|
)
|
|
299
280
|
self.assertIsNone(result)
|
|
300
281
|
|
|
301
282
|
|
|
302
|
-
class TestRegionShow(
|
|
283
|
+
class TestRegionShow(identity_fakes.TestIdentityv3):
|
|
303
284
|
def setUp(self):
|
|
304
285
|
super().setUp()
|
|
305
286
|
|
|
306
|
-
self.
|
|
307
|
-
|
|
308
|
-
copy.deepcopy(identity_fakes.REGION),
|
|
309
|
-
loaded=True,
|
|
310
|
-
)
|
|
287
|
+
self.region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
288
|
+
self.identity_sdk_client.get_region.return_value = self.region
|
|
311
289
|
|
|
312
290
|
# Get the command object to test
|
|
313
291
|
self.cmd = region.ShowRegion(self.app, None)
|
|
314
292
|
|
|
315
293
|
def test_region_show(self):
|
|
316
294
|
arglist = [
|
|
317
|
-
|
|
295
|
+
self.region.id,
|
|
318
296
|
]
|
|
319
297
|
verifylist = [
|
|
320
|
-
('region',
|
|
298
|
+
('region', self.region.id),
|
|
321
299
|
]
|
|
322
300
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
323
301
|
|
|
@@ -325,15 +303,15 @@ class TestRegionShow(TestRegion):
|
|
|
325
303
|
# returns a two-part tuple with a tuple of column names and a tuple of
|
|
326
304
|
# data to be shown.
|
|
327
305
|
columns, data = self.cmd.take_action(parsed_args)
|
|
328
|
-
self.
|
|
329
|
-
|
|
306
|
+
self.identity_sdk_client.get_region.assert_called_with(
|
|
307
|
+
self.region.id,
|
|
330
308
|
)
|
|
331
309
|
|
|
332
|
-
collist = ('
|
|
310
|
+
collist = ('region', 'description', 'parent_region')
|
|
333
311
|
self.assertEqual(collist, columns)
|
|
334
312
|
datalist = (
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
313
|
+
self.region.id,
|
|
314
|
+
self.region.description,
|
|
315
|
+
self.region.parent_region_id,
|
|
338
316
|
)
|
|
339
317
|
self.assertEqual(datalist, data)
|