python-openstackclient 8.0.0__py3-none-any.whl → 8.2.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.
- openstackclient/api/compute_v2.py +2 -2
- openstackclient/api/volume_v2.py +60 -0
- openstackclient/api/volume_v3.py +60 -0
- openstackclient/compute/client.py +5 -0
- openstackclient/compute/v2/console.py +7 -0
- openstackclient/compute/v2/console_connection.py +48 -0
- openstackclient/compute/v2/flavor.py +14 -1
- openstackclient/compute/v2/keypair.py +10 -3
- openstackclient/compute/v2/server.py +76 -13
- openstackclient/compute/v2/server_event.py +1 -1
- openstackclient/identity/common.py +85 -11
- openstackclient/identity/v3/application_credential.py +88 -87
- openstackclient/identity/v3/domain.py +67 -49
- openstackclient/identity/v3/group.py +113 -68
- openstackclient/identity/v3/project.py +42 -20
- openstackclient/identity/v3/role.py +7 -2
- openstackclient/identity/v3/user.py +38 -5
- openstackclient/image/client.py +5 -0
- openstackclient/image/v1/image.py +16 -1
- openstackclient/image/v2/cache.py +10 -6
- openstackclient/image/v2/image.py +59 -12
- openstackclient/image/v2/metadef_objects.py +8 -2
- openstackclient/image/v2/metadef_properties.py +9 -2
- openstackclient/network/client.py +0 -6
- openstackclient/network/v2/floating_ip.py +58 -29
- openstackclient/network/v2/network_qos_rule.py +3 -11
- openstackclient/network/v2/port.py +16 -0
- openstackclient/network/v2/router.py +1 -1
- openstackclient/network/v2/security_group.py +49 -7
- openstackclient/network/v2/security_group_rule.py +18 -1
- openstackclient/shell.py +1 -1
- openstackclient/tests/functional/base.py +5 -1
- openstackclient/tests/functional/compute/v2/test_keypair.py +41 -5
- openstackclient/tests/functional/identity/v3/test_access_rule.py +1 -1
- openstackclient/tests/functional/identity/v3/test_application_credential.py +7 -7
- openstackclient/tests/functional/image/v2/test_image.py +36 -14
- openstackclient/tests/functional/volume/v2/test_volume.py +1 -1
- openstackclient/tests/functional/volume/v3/test_volume.py +2 -2
- openstackclient/tests/unit/api/test_volume_v2.py +124 -0
- openstackclient/tests/unit/api/test_volume_v3.py +124 -0
- openstackclient/tests/unit/compute/v2/fakes.py +81 -305
- openstackclient/tests/unit/compute/v2/test_console.py +18 -1
- openstackclient/tests/unit/compute/v2/test_console_connection.py +72 -0
- openstackclient/tests/unit/compute/v2/test_flavor.py +160 -175
- openstackclient/tests/unit/compute/v2/test_keypair.py +12 -5
- openstackclient/tests/unit/compute/v2/test_server.py +211 -97
- openstackclient/tests/unit/compute/v2/test_server_backup.py +32 -71
- openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
- openstackclient/tests/unit/compute/v2/test_server_image.py +33 -72
- openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
- openstackclient/tests/unit/identity/v3/test_application_credential.py +93 -65
- openstackclient/tests/unit/identity/v3/test_domain.py +117 -107
- openstackclient/tests/unit/identity/v3/test_group.py +353 -202
- openstackclient/tests/unit/identity/v3/test_project.py +46 -53
- openstackclient/tests/unit/identity/v3/test_role.py +2 -8
- openstackclient/tests/unit/identity/v3/test_user.py +86 -6
- openstackclient/tests/unit/image/v1/test_image.py +55 -9
- openstackclient/tests/unit/image/v2/test_image.py +128 -58
- openstackclient/tests/unit/image/v2/test_metadef_objects.py +22 -0
- openstackclient/tests/unit/image/v2/test_metadef_properties.py +24 -10
- openstackclient/tests/unit/network/v2/fakes.py +406 -485
- openstackclient/tests/unit/network/v2/test_floating_ip_network.py +13 -19
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +2 -2
- openstackclient/tests/unit/network/v2/test_ndp_proxy.py +3 -5
- openstackclient/tests/unit/network/v2/test_network.py +4 -4
- openstackclient/tests/unit/network/v2/test_network_agent.py +15 -29
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +16 -19
- openstackclient/tests/unit/network/v2/test_network_qos_rule.py +79 -152
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +4 -6
- openstackclient/tests/unit/network/v2/test_network_rbac.py +2 -2
- openstackclient/tests/unit/network/v2/test_port.py +57 -17
- openstackclient/tests/unit/network/v2/test_router.py +73 -57
- openstackclient/tests/unit/network/v2/test_security_group_network.py +31 -27
- openstackclient/tests/unit/network/v2/test_security_group_rule_compute.py +1 -3
- openstackclient/tests/unit/network/v2/test_security_group_rule_network.py +82 -39
- openstackclient/tests/unit/volume/v2/fakes.py +1 -2
- openstackclient/tests/unit/volume/v2/test_service.py +57 -91
- openstackclient/tests/unit/volume/v2/test_volume.py +466 -410
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +141 -148
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +293 -283
- openstackclient/tests/unit/volume/v3/test_block_storage_log_level.py +61 -71
- openstackclient/tests/unit/volume/v3/test_service.py +221 -141
- openstackclient/tests/unit/volume/v3/test_volume.py +569 -534
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +1 -1
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +198 -203
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +682 -47
- openstackclient/volume/v2/service.py +41 -38
- openstackclient/volume/v2/volume.py +140 -88
- openstackclient/volume/v2/volume_backup.py +9 -3
- openstackclient/volume/v2/volume_snapshot.py +121 -84
- openstackclient/volume/v3/block_storage_log_level.py +22 -28
- openstackclient/volume/v3/service.py +105 -14
- openstackclient/volume/v3/volume.py +287 -99
- openstackclient/volume/v3/volume_backup.py +24 -19
- openstackclient/volume/v3/volume_group.py +1 -1
- openstackclient/volume/v3/volume_snapshot.py +485 -10
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/AUTHORS +13 -0
- python_openstackclient-8.2.0.dist-info/METADATA +264 -0
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/RECORD +104 -98
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/entry_points.txt +7 -6
- python_openstackclient-8.2.0.dist-info/pbr.json +1 -0
- python_openstackclient-8.0.0.dist-info/METADATA +0 -166
- python_openstackclient-8.0.0.dist-info/pbr.json +0 -1
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/LICENSE +0 -0
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/WHEEL +0 -0
- {python_openstackclient-8.0.0.dist-info → python_openstackclient-8.2.0.dist-info}/top_level.txt +0 -0
|
@@ -24,24 +24,13 @@ from openstack.identity.v3 import (
|
|
|
24
24
|
application_credential as _application_credential,
|
|
25
25
|
)
|
|
26
26
|
from openstack.identity.v3 import role as _role
|
|
27
|
+
from openstack.identity.v3 import user as _user
|
|
27
28
|
from openstack.test import fakes as sdk_fakes
|
|
28
29
|
from openstackclient.identity.v3 import application_credential
|
|
29
30
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
|
33
|
-
columns = (
|
|
34
|
-
'id',
|
|
35
|
-
'name',
|
|
36
|
-
'description',
|
|
37
|
-
'project_id',
|
|
38
|
-
'roles',
|
|
39
|
-
'unrestricted',
|
|
40
|
-
'access_rules',
|
|
41
|
-
'expires_at',
|
|
42
|
-
'secret',
|
|
43
|
-
)
|
|
44
|
-
|
|
45
34
|
def setUp(self):
|
|
46
35
|
super().setUp()
|
|
47
36
|
|
|
@@ -51,12 +40,25 @@ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
|
|
51
40
|
roles=[],
|
|
52
41
|
)
|
|
53
42
|
|
|
54
|
-
self.
|
|
43
|
+
self.columns = (
|
|
44
|
+
'ID',
|
|
45
|
+
'Name',
|
|
46
|
+
'Description',
|
|
47
|
+
'Project ID',
|
|
48
|
+
'Roles',
|
|
49
|
+
'Unrestricted',
|
|
50
|
+
'Access Rules',
|
|
51
|
+
'Expires At',
|
|
52
|
+
'Secret',
|
|
53
|
+
)
|
|
54
|
+
self.data = (
|
|
55
55
|
self.application_credential.id,
|
|
56
56
|
self.application_credential.name,
|
|
57
57
|
self.application_credential.description,
|
|
58
58
|
self.application_credential.project_id,
|
|
59
|
-
|
|
59
|
+
application_credential.RolesColumn(
|
|
60
|
+
self.application_credential.roles
|
|
61
|
+
),
|
|
60
62
|
self.application_credential.unrestricted,
|
|
61
63
|
self.application_credential.access_rules,
|
|
62
64
|
self.application_credential.expires_at,
|
|
@@ -100,7 +102,7 @@ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
|
|
100
102
|
)
|
|
101
103
|
|
|
102
104
|
self.assertEqual(self.columns, columns)
|
|
103
|
-
self.assertEqual(self.
|
|
105
|
+
self.assertEqual(self.data, data)
|
|
104
106
|
|
|
105
107
|
def test_application_credential_create_with_options(self):
|
|
106
108
|
name = self.application_credential.name
|
|
@@ -146,7 +148,7 @@ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
|
|
146
148
|
)
|
|
147
149
|
|
|
148
150
|
self.assertEqual(self.columns, columns)
|
|
149
|
-
self.assertEqual(self.
|
|
151
|
+
self.assertEqual(self.data, data)
|
|
150
152
|
|
|
151
153
|
def test_application_credential_create_with_access_rules_string(self):
|
|
152
154
|
name = self.application_credential.name
|
|
@@ -190,7 +192,7 @@ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
|
|
190
192
|
)
|
|
191
193
|
|
|
192
194
|
self.assertEqual(self.columns, columns)
|
|
193
|
-
self.assertEqual(self.
|
|
195
|
+
self.assertEqual(self.data, data)
|
|
194
196
|
|
|
195
197
|
@mock.patch('openstackclient.identity.v3.application_credential.json.load')
|
|
196
198
|
@mock.patch('openstackclient.identity.v3.application_credential.open')
|
|
@@ -230,7 +232,7 @@ class TestApplicationCredentialCreate(identity_fakes.TestIdentityv3):
|
|
|
230
232
|
)
|
|
231
233
|
|
|
232
234
|
self.assertEqual(self.columns, columns)
|
|
233
|
-
self.assertEqual(self.
|
|
235
|
+
self.assertEqual(self.data, data)
|
|
234
236
|
|
|
235
237
|
|
|
236
238
|
class TestApplicationCredentialDelete(identity_fakes.TestIdentityv3):
|
|
@@ -325,6 +327,33 @@ class TestApplicationCredentialList(identity_fakes.TestIdentityv3):
|
|
|
325
327
|
self.identity_sdk_client.application_credentials.return_value = [
|
|
326
328
|
self.application_credential
|
|
327
329
|
]
|
|
330
|
+
self.user = sdk_fakes.generate_fake_resource(resource_type=_user.User)
|
|
331
|
+
self.identity_sdk_client.find_user.return_value = self.user
|
|
332
|
+
|
|
333
|
+
self.columns = (
|
|
334
|
+
'ID',
|
|
335
|
+
'Name',
|
|
336
|
+
'Description',
|
|
337
|
+
'Project ID',
|
|
338
|
+
'Roles',
|
|
339
|
+
'Unrestricted',
|
|
340
|
+
'Access Rules',
|
|
341
|
+
'Expires At',
|
|
342
|
+
)
|
|
343
|
+
self.data = (
|
|
344
|
+
(
|
|
345
|
+
self.application_credential.id,
|
|
346
|
+
self.application_credential.name,
|
|
347
|
+
self.application_credential.description,
|
|
348
|
+
self.application_credential.project_id,
|
|
349
|
+
application_credential.RolesColumn(
|
|
350
|
+
self.application_credential.roles
|
|
351
|
+
),
|
|
352
|
+
self.application_credential.unrestricted,
|
|
353
|
+
self.application_credential.access_rules,
|
|
354
|
+
self.application_credential.expires_at,
|
|
355
|
+
),
|
|
356
|
+
)
|
|
328
357
|
|
|
329
358
|
# Get the command object to test
|
|
330
359
|
self.cmd = application_credential.ListApplicationCredential(
|
|
@@ -339,39 +368,35 @@ class TestApplicationCredentialList(identity_fakes.TestIdentityv3):
|
|
|
339
368
|
conn = self.app.client_manager.sdk_connection
|
|
340
369
|
user_id = conn.config.get_auth().get_user_id(conn.identity)
|
|
341
370
|
|
|
342
|
-
# In base command class Lister in cliff, abstract method take_action()
|
|
343
|
-
# returns a tuple containing the column names and an iterable
|
|
344
|
-
# containing the data to be listed.
|
|
345
371
|
columns, data = self.cmd.take_action(parsed_args)
|
|
346
372
|
|
|
373
|
+
self.assertEqual(self.columns, columns)
|
|
374
|
+
self.assertEqual(self.data, tuple(data))
|
|
375
|
+
|
|
376
|
+
self.identity_sdk_client.find_user.assert_not_called()
|
|
347
377
|
self.identity_sdk_client.application_credentials.assert_called_with(
|
|
348
378
|
user=user_id
|
|
349
379
|
)
|
|
350
380
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
381
|
+
def test_application_credential_list_user(self):
|
|
382
|
+
arglist = ['--user', self.user.name]
|
|
383
|
+
verifylist = []
|
|
384
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
385
|
+
|
|
386
|
+
conn = self.app.client_manager.sdk_connection
|
|
387
|
+
conn.config.get_auth().get_user_id(conn.identity)
|
|
388
|
+
|
|
389
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
390
|
+
|
|
391
|
+
self.assertEqual(self.columns, columns)
|
|
392
|
+
self.assertEqual(self.data, tuple(data))
|
|
393
|
+
|
|
394
|
+
self.identity_sdk_client.find_user.assert_called_once_with(
|
|
395
|
+
name_or_id=self.user.name, ignore_missing=False
|
|
360
396
|
)
|
|
361
|
-
self.
|
|
362
|
-
|
|
363
|
-
(
|
|
364
|
-
self.application_credential.id,
|
|
365
|
-
self.application_credential.name,
|
|
366
|
-
self.application_credential.description,
|
|
367
|
-
self.application_credential.project_id,
|
|
368
|
-
self.application_credential.roles,
|
|
369
|
-
self.application_credential.unrestricted,
|
|
370
|
-
self.application_credential.access_rules,
|
|
371
|
-
self.application_credential.expires_at,
|
|
372
|
-
),
|
|
397
|
+
self.identity_sdk_client.application_credentials.assert_called_with(
|
|
398
|
+
user=self.user.id
|
|
373
399
|
)
|
|
374
|
-
self.assertEqual(datalist, tuple(data))
|
|
375
400
|
|
|
376
401
|
|
|
377
402
|
class TestApplicationCredentialShow(identity_fakes.TestIdentityv3):
|
|
@@ -386,6 +411,29 @@ class TestApplicationCredentialShow(identity_fakes.TestIdentityv3):
|
|
|
386
411
|
self.application_credential
|
|
387
412
|
)
|
|
388
413
|
|
|
414
|
+
self.columns = (
|
|
415
|
+
'ID',
|
|
416
|
+
'Name',
|
|
417
|
+
'Description',
|
|
418
|
+
'Project ID',
|
|
419
|
+
'Roles',
|
|
420
|
+
'Unrestricted',
|
|
421
|
+
'Access Rules',
|
|
422
|
+
'Expires At',
|
|
423
|
+
)
|
|
424
|
+
self.data = (
|
|
425
|
+
self.application_credential.id,
|
|
426
|
+
self.application_credential.name,
|
|
427
|
+
self.application_credential.description,
|
|
428
|
+
self.application_credential.project_id,
|
|
429
|
+
application_credential.RolesColumn(
|
|
430
|
+
self.application_credential.roles
|
|
431
|
+
),
|
|
432
|
+
self.application_credential.unrestricted,
|
|
433
|
+
self.application_credential.access_rules,
|
|
434
|
+
self.application_credential.expires_at,
|
|
435
|
+
)
|
|
436
|
+
|
|
389
437
|
# Get the command object to test
|
|
390
438
|
self.cmd = application_credential.ShowApplicationCredential(
|
|
391
439
|
self.app, None
|
|
@@ -412,25 +460,5 @@ class TestApplicationCredentialShow(identity_fakes.TestIdentityv3):
|
|
|
412
460
|
user_id, self.application_credential.id
|
|
413
461
|
)
|
|
414
462
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
'name',
|
|
418
|
-
'description',
|
|
419
|
-
'project_id',
|
|
420
|
-
'roles',
|
|
421
|
-
'unrestricted',
|
|
422
|
-
'access_rules',
|
|
423
|
-
'expires_at',
|
|
424
|
-
)
|
|
425
|
-
self.assertEqual(collist, columns)
|
|
426
|
-
datalist = (
|
|
427
|
-
self.application_credential.id,
|
|
428
|
-
self.application_credential.name,
|
|
429
|
-
self.application_credential.description,
|
|
430
|
-
self.application_credential.project_id,
|
|
431
|
-
self.application_credential.roles,
|
|
432
|
-
self.application_credential.unrestricted,
|
|
433
|
-
self.application_credential.access_rules,
|
|
434
|
-
self.application_credential.expires_at,
|
|
435
|
-
)
|
|
436
|
-
self.assertEqual(datalist, data)
|
|
463
|
+
self.assertEqual(self.columns, columns)
|
|
464
|
+
self.assertEqual(self.data, data)
|
|
@@ -10,33 +10,32 @@
|
|
|
10
10
|
# License for the specific language governing permissions and limitations
|
|
11
11
|
# under the License.
|
|
12
12
|
|
|
13
|
+
from openstack.identity.v3 import domain as _domain
|
|
14
|
+
from openstack.test import fakes as sdk_fakes
|
|
13
15
|
from openstackclient.identity.v3 import domain
|
|
14
16
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
15
17
|
|
|
16
18
|
|
|
17
|
-
class
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class TestDomainCreate(TestDomain):
|
|
27
|
-
columns = ('description', 'enabled', 'id', 'name', 'tags')
|
|
19
|
+
class TestDomainCreate(identity_fakes.TestIdentityv3):
|
|
20
|
+
columns = (
|
|
21
|
+
'id',
|
|
22
|
+
'name',
|
|
23
|
+
'enabled',
|
|
24
|
+
'description',
|
|
25
|
+
'options',
|
|
26
|
+
)
|
|
28
27
|
|
|
29
28
|
def setUp(self):
|
|
30
29
|
super().setUp()
|
|
31
30
|
|
|
32
|
-
self.domain =
|
|
33
|
-
self.
|
|
31
|
+
self.domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
32
|
+
self.identity_sdk_client.create_domain.return_value = self.domain
|
|
34
33
|
self.datalist = (
|
|
35
|
-
self.domain.description,
|
|
36
|
-
True,
|
|
37
34
|
self.domain.id,
|
|
38
35
|
self.domain.name,
|
|
39
|
-
self.domain.
|
|
36
|
+
self.domain.is_enabled,
|
|
37
|
+
self.domain.description,
|
|
38
|
+
self.domain.options,
|
|
40
39
|
)
|
|
41
40
|
|
|
42
41
|
# Get the command object to test
|
|
@@ -61,9 +60,9 @@ class TestDomainCreate(TestDomain):
|
|
|
61
60
|
'name': self.domain.name,
|
|
62
61
|
'description': None,
|
|
63
62
|
'options': {},
|
|
64
|
-
'
|
|
63
|
+
'is_enabled': True,
|
|
65
64
|
}
|
|
66
|
-
self.
|
|
65
|
+
self.identity_sdk_client.create_domain.assert_called_with(**kwargs)
|
|
67
66
|
|
|
68
67
|
self.assertEqual(self.columns, columns)
|
|
69
68
|
self.assertEqual(self.datalist, data)
|
|
@@ -90,9 +89,9 @@ class TestDomainCreate(TestDomain):
|
|
|
90
89
|
'name': self.domain.name,
|
|
91
90
|
'description': 'new desc',
|
|
92
91
|
'options': {},
|
|
93
|
-
'
|
|
92
|
+
'is_enabled': True,
|
|
94
93
|
}
|
|
95
|
-
self.
|
|
94
|
+
self.identity_sdk_client.create_domain.assert_called_with(**kwargs)
|
|
96
95
|
|
|
97
96
|
self.assertEqual(self.columns, columns)
|
|
98
97
|
self.assertEqual(self.datalist, data)
|
|
@@ -103,7 +102,7 @@ class TestDomainCreate(TestDomain):
|
|
|
103
102
|
self.domain.name,
|
|
104
103
|
]
|
|
105
104
|
verifylist = [
|
|
106
|
-
('
|
|
105
|
+
('is_enabled', True),
|
|
107
106
|
('name', self.domain.name),
|
|
108
107
|
]
|
|
109
108
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -118,9 +117,9 @@ class TestDomainCreate(TestDomain):
|
|
|
118
117
|
'name': self.domain.name,
|
|
119
118
|
'description': None,
|
|
120
119
|
'options': {},
|
|
121
|
-
'
|
|
120
|
+
'is_enabled': True,
|
|
122
121
|
}
|
|
123
|
-
self.
|
|
122
|
+
self.identity_sdk_client.create_domain.assert_called_with(**kwargs)
|
|
124
123
|
|
|
125
124
|
self.assertEqual(self.columns, columns)
|
|
126
125
|
self.assertEqual(self.datalist, data)
|
|
@@ -131,7 +130,7 @@ class TestDomainCreate(TestDomain):
|
|
|
131
130
|
self.domain.name,
|
|
132
131
|
]
|
|
133
132
|
verifylist = [
|
|
134
|
-
('
|
|
133
|
+
('is_enabled', False),
|
|
135
134
|
('name', self.domain.name),
|
|
136
135
|
]
|
|
137
136
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -146,9 +145,9 @@ class TestDomainCreate(TestDomain):
|
|
|
146
145
|
'name': self.domain.name,
|
|
147
146
|
'description': None,
|
|
148
147
|
'options': {},
|
|
149
|
-
'
|
|
148
|
+
'is_enabled': False,
|
|
150
149
|
}
|
|
151
|
-
self.
|
|
150
|
+
self.identity_sdk_client.create_domain.assert_called_with(**kwargs)
|
|
152
151
|
|
|
153
152
|
self.assertEqual(self.columns, columns)
|
|
154
153
|
self.assertEqual(self.datalist, data)
|
|
@@ -174,9 +173,9 @@ class TestDomainCreate(TestDomain):
|
|
|
174
173
|
'name': self.domain.name,
|
|
175
174
|
'description': None,
|
|
176
175
|
'options': {'immutable': True},
|
|
177
|
-
'
|
|
176
|
+
'is_enabled': True,
|
|
178
177
|
}
|
|
179
|
-
self.
|
|
178
|
+
self.identity_sdk_client.create_domain.assert_called_with(**kwargs)
|
|
180
179
|
|
|
181
180
|
self.assertEqual(self.columns, columns)
|
|
182
181
|
self.assertEqual(self.datalist, data)
|
|
@@ -187,7 +186,7 @@ class TestDomainCreate(TestDomain):
|
|
|
187
186
|
self.domain.name,
|
|
188
187
|
]
|
|
189
188
|
verifylist = [
|
|
190
|
-
('
|
|
189
|
+
('immutable', False),
|
|
191
190
|
('name', self.domain.name),
|
|
192
191
|
]
|
|
193
192
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -202,23 +201,23 @@ class TestDomainCreate(TestDomain):
|
|
|
202
201
|
'name': self.domain.name,
|
|
203
202
|
'description': None,
|
|
204
203
|
'options': {'immutable': False},
|
|
205
|
-
'
|
|
204
|
+
'is_enabled': True,
|
|
206
205
|
}
|
|
207
|
-
self.
|
|
206
|
+
self.identity_sdk_client.create_domain.assert_called_with(**kwargs)
|
|
208
207
|
|
|
209
208
|
self.assertEqual(self.columns, columns)
|
|
210
209
|
self.assertEqual(self.datalist, data)
|
|
211
210
|
|
|
212
211
|
|
|
213
|
-
class TestDomainDelete(
|
|
214
|
-
domain =
|
|
212
|
+
class TestDomainDelete(identity_fakes.TestIdentityv3):
|
|
213
|
+
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
215
214
|
|
|
216
215
|
def setUp(self):
|
|
217
216
|
super().setUp()
|
|
218
217
|
|
|
219
218
|
# This is the return value for utils.find_resource()
|
|
220
|
-
self.
|
|
221
|
-
self.
|
|
219
|
+
self.identity_sdk_client.find_domain.return_value = self.domain
|
|
220
|
+
self.identity_sdk_client.delete_domain.return_value = None
|
|
222
221
|
|
|
223
222
|
# Get the command object to test
|
|
224
223
|
self.cmd = domain.DeleteDomain(self.app, None)
|
|
@@ -234,19 +233,35 @@ class TestDomainDelete(TestDomain):
|
|
|
234
233
|
|
|
235
234
|
result = self.cmd.take_action(parsed_args)
|
|
236
235
|
|
|
237
|
-
self.
|
|
236
|
+
self.identity_sdk_client.delete_domain.assert_called_with(
|
|
238
237
|
self.domain.id,
|
|
239
238
|
)
|
|
240
239
|
self.assertIsNone(result)
|
|
241
240
|
|
|
242
241
|
|
|
243
|
-
class TestDomainList(
|
|
244
|
-
domain =
|
|
242
|
+
class TestDomainList(identity_fakes.TestIdentityv3):
|
|
243
|
+
domain = sdk_fakes.generate_fake_resource(
|
|
244
|
+
resource_type=_domain.Domain, is_enabled=True
|
|
245
|
+
)
|
|
246
|
+
columns = (
|
|
247
|
+
'ID',
|
|
248
|
+
'Name',
|
|
249
|
+
'Enabled',
|
|
250
|
+
'Description',
|
|
251
|
+
)
|
|
245
252
|
|
|
246
253
|
def setUp(self):
|
|
247
254
|
super().setUp()
|
|
248
255
|
|
|
249
|
-
self.
|
|
256
|
+
self.identity_sdk_client.domains.return_value = [self.domain]
|
|
257
|
+
self.datalist = (
|
|
258
|
+
(
|
|
259
|
+
self.domain.id,
|
|
260
|
+
self.domain.name,
|
|
261
|
+
self.domain.is_enabled,
|
|
262
|
+
self.domain.description,
|
|
263
|
+
),
|
|
264
|
+
)
|
|
250
265
|
|
|
251
266
|
# Get the command object to test
|
|
252
267
|
self.cmd = domain.ListDomain(self.app, None)
|
|
@@ -260,19 +275,10 @@ class TestDomainList(TestDomain):
|
|
|
260
275
|
# returns a tuple containing the column names and an iterable
|
|
261
276
|
# containing the data to be listed.
|
|
262
277
|
columns, data = self.cmd.take_action(parsed_args)
|
|
263
|
-
self.
|
|
278
|
+
self.identity_sdk_client.domains.assert_called_with()
|
|
264
279
|
|
|
265
|
-
|
|
266
|
-
self.assertEqual(
|
|
267
|
-
datalist = (
|
|
268
|
-
(
|
|
269
|
-
self.domain.id,
|
|
270
|
-
self.domain.name,
|
|
271
|
-
True,
|
|
272
|
-
self.domain.description,
|
|
273
|
-
),
|
|
274
|
-
)
|
|
275
|
-
self.assertEqual(datalist, tuple(data))
|
|
280
|
+
self.assertEqual(self.columns, columns)
|
|
281
|
+
self.assertEqual(self.datalist, tuple(data))
|
|
276
282
|
|
|
277
283
|
def test_domain_list_with_option_name(self):
|
|
278
284
|
arglist = ['--name', self.domain.name]
|
|
@@ -285,23 +291,14 @@ class TestDomainList(TestDomain):
|
|
|
285
291
|
columns, data = self.cmd.take_action(parsed_args)
|
|
286
292
|
|
|
287
293
|
kwargs = {'name': self.domain.name}
|
|
288
|
-
self.
|
|
294
|
+
self.identity_sdk_client.domains.assert_called_with(**kwargs)
|
|
289
295
|
|
|
290
|
-
|
|
291
|
-
self.assertEqual(
|
|
292
|
-
datalist = (
|
|
293
|
-
(
|
|
294
|
-
self.domain.id,
|
|
295
|
-
self.domain.name,
|
|
296
|
-
True,
|
|
297
|
-
self.domain.description,
|
|
298
|
-
),
|
|
299
|
-
)
|
|
300
|
-
self.assertEqual(datalist, tuple(data))
|
|
296
|
+
self.assertEqual(self.columns, columns)
|
|
297
|
+
self.assertEqual(self.datalist, tuple(data))
|
|
301
298
|
|
|
302
299
|
def test_domain_list_with_option_enabled(self):
|
|
303
300
|
arglist = ['--enabled']
|
|
304
|
-
verifylist = [('
|
|
301
|
+
verifylist = [('is_enabled', True)]
|
|
305
302
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
306
303
|
|
|
307
304
|
# In base command class Lister in cliff, abstract method take_action()
|
|
@@ -309,31 +306,22 @@ class TestDomainList(TestDomain):
|
|
|
309
306
|
# containing the data to be listed.
|
|
310
307
|
columns, data = self.cmd.take_action(parsed_args)
|
|
311
308
|
|
|
312
|
-
kwargs = {'
|
|
313
|
-
self.
|
|
309
|
+
kwargs = {'is_enabled': True}
|
|
310
|
+
self.identity_sdk_client.domains.assert_called_with(**kwargs)
|
|
314
311
|
|
|
315
|
-
|
|
316
|
-
self.assertEqual(
|
|
317
|
-
datalist = (
|
|
318
|
-
(
|
|
319
|
-
self.domain.id,
|
|
320
|
-
self.domain.name,
|
|
321
|
-
True,
|
|
322
|
-
self.domain.description,
|
|
323
|
-
),
|
|
324
|
-
)
|
|
325
|
-
self.assertEqual(datalist, tuple(data))
|
|
312
|
+
self.assertEqual(self.columns, columns)
|
|
313
|
+
self.assertEqual(self.datalist, tuple(data))
|
|
326
314
|
|
|
327
315
|
|
|
328
|
-
class TestDomainSet(
|
|
329
|
-
domain =
|
|
316
|
+
class TestDomainSet(identity_fakes.TestIdentityv3):
|
|
317
|
+
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
330
318
|
|
|
331
319
|
def setUp(self):
|
|
332
320
|
super().setUp()
|
|
333
321
|
|
|
334
|
-
self.
|
|
322
|
+
self.identity_sdk_client.find_domain.return_value = self.domain
|
|
335
323
|
|
|
336
|
-
self.
|
|
324
|
+
self.identity_sdk_client.update_domain.return_value = self.domain
|
|
337
325
|
|
|
338
326
|
# Get the command object to test
|
|
339
327
|
self.cmd = domain.SetDomain(self.app, None)
|
|
@@ -350,7 +338,9 @@ class TestDomainSet(TestDomain):
|
|
|
350
338
|
result = self.cmd.take_action(parsed_args)
|
|
351
339
|
|
|
352
340
|
kwargs = {}
|
|
353
|
-
self.
|
|
341
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
342
|
+
self.domain.id, **kwargs
|
|
343
|
+
)
|
|
354
344
|
self.assertIsNone(result)
|
|
355
345
|
|
|
356
346
|
def test_domain_set_name(self):
|
|
@@ -371,7 +361,9 @@ class TestDomainSet(TestDomain):
|
|
|
371
361
|
kwargs = {
|
|
372
362
|
'name': 'qwerty',
|
|
373
363
|
}
|
|
374
|
-
self.
|
|
364
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
365
|
+
self.domain.id, **kwargs
|
|
366
|
+
)
|
|
375
367
|
self.assertIsNone(result)
|
|
376
368
|
|
|
377
369
|
def test_domain_set_description(self):
|
|
@@ -392,7 +384,9 @@ class TestDomainSet(TestDomain):
|
|
|
392
384
|
kwargs = {
|
|
393
385
|
'description': 'new desc',
|
|
394
386
|
}
|
|
395
|
-
self.
|
|
387
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
388
|
+
self.domain.id, **kwargs
|
|
389
|
+
)
|
|
396
390
|
self.assertIsNone(result)
|
|
397
391
|
|
|
398
392
|
def test_domain_set_enable(self):
|
|
@@ -401,7 +395,7 @@ class TestDomainSet(TestDomain):
|
|
|
401
395
|
self.domain.id,
|
|
402
396
|
]
|
|
403
397
|
verifylist = [
|
|
404
|
-
('
|
|
398
|
+
('is_enabled', True),
|
|
405
399
|
('domain', self.domain.id),
|
|
406
400
|
]
|
|
407
401
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -410,9 +404,11 @@ class TestDomainSet(TestDomain):
|
|
|
410
404
|
|
|
411
405
|
# Set expected values
|
|
412
406
|
kwargs = {
|
|
413
|
-
'
|
|
407
|
+
'is_enabled': True,
|
|
414
408
|
}
|
|
415
|
-
self.
|
|
409
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
410
|
+
self.domain.id, **kwargs
|
|
411
|
+
)
|
|
416
412
|
self.assertIsNone(result)
|
|
417
413
|
|
|
418
414
|
def test_domain_set_disable(self):
|
|
@@ -421,7 +417,7 @@ class TestDomainSet(TestDomain):
|
|
|
421
417
|
self.domain.id,
|
|
422
418
|
]
|
|
423
419
|
verifylist = [
|
|
424
|
-
('
|
|
420
|
+
('is_enabled', False),
|
|
425
421
|
('domain', self.domain.id),
|
|
426
422
|
]
|
|
427
423
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -430,9 +426,11 @@ class TestDomainSet(TestDomain):
|
|
|
430
426
|
|
|
431
427
|
# Set expected values
|
|
432
428
|
kwargs = {
|
|
433
|
-
'
|
|
429
|
+
'is_enabled': False,
|
|
434
430
|
}
|
|
435
|
-
self.
|
|
431
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
432
|
+
self.domain.id, **kwargs
|
|
433
|
+
)
|
|
436
434
|
self.assertIsNone(result)
|
|
437
435
|
|
|
438
436
|
def test_domain_set_immutable_option(self):
|
|
@@ -452,7 +450,9 @@ class TestDomainSet(TestDomain):
|
|
|
452
450
|
kwargs = {
|
|
453
451
|
'options': {'immutable': True},
|
|
454
452
|
}
|
|
455
|
-
self.
|
|
453
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
454
|
+
self.domain.id, **kwargs
|
|
455
|
+
)
|
|
456
456
|
self.assertIsNone(result)
|
|
457
457
|
|
|
458
458
|
def test_domain_set_no_immutable_option(self):
|
|
@@ -461,7 +461,7 @@ class TestDomainSet(TestDomain):
|
|
|
461
461
|
self.domain.id,
|
|
462
462
|
]
|
|
463
463
|
verifylist = [
|
|
464
|
-
('
|
|
464
|
+
('immutable', False),
|
|
465
465
|
('domain', self.domain.id),
|
|
466
466
|
]
|
|
467
467
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
@@ -472,16 +472,34 @@ class TestDomainSet(TestDomain):
|
|
|
472
472
|
kwargs = {
|
|
473
473
|
'options': {'immutable': False},
|
|
474
474
|
}
|
|
475
|
-
self.
|
|
475
|
+
self.identity_sdk_client.update_domain.assert_called_with(
|
|
476
|
+
self.domain.id, **kwargs
|
|
477
|
+
)
|
|
476
478
|
self.assertIsNone(result)
|
|
477
479
|
|
|
478
480
|
|
|
479
|
-
class TestDomainShow(
|
|
481
|
+
class TestDomainShow(identity_fakes.TestIdentityv3):
|
|
482
|
+
columns = (
|
|
483
|
+
'id',
|
|
484
|
+
'name',
|
|
485
|
+
'enabled',
|
|
486
|
+
'description',
|
|
487
|
+
'options',
|
|
488
|
+
)
|
|
489
|
+
|
|
480
490
|
def setUp(self):
|
|
481
491
|
super().setUp()
|
|
482
492
|
|
|
483
|
-
self.domain =
|
|
484
|
-
self.
|
|
493
|
+
self.domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
494
|
+
self.identity_sdk_client.find_domain.return_value = self.domain
|
|
495
|
+
self.datalist = (
|
|
496
|
+
self.domain.id,
|
|
497
|
+
self.domain.name,
|
|
498
|
+
self.domain.is_enabled,
|
|
499
|
+
self.domain.description,
|
|
500
|
+
self.domain.options,
|
|
501
|
+
)
|
|
502
|
+
|
|
485
503
|
# Get the command object to test
|
|
486
504
|
self.cmd = domain.ShowDomain(self.app, None)
|
|
487
505
|
|
|
@@ -501,17 +519,9 @@ class TestDomainShow(TestDomain):
|
|
|
501
519
|
# returns a two-part tuple with a tuple of column names and a tuple of
|
|
502
520
|
# data to be shown.
|
|
503
521
|
columns, data = self.cmd.take_action(parsed_args)
|
|
504
|
-
self.
|
|
522
|
+
self.identity_sdk_client.find_domain.assert_called_with(
|
|
505
523
|
self.domain.id,
|
|
506
524
|
)
|
|
507
525
|
|
|
508
|
-
|
|
509
|
-
self.assertEqual(
|
|
510
|
-
datalist = (
|
|
511
|
-
self.domain.description,
|
|
512
|
-
True,
|
|
513
|
-
self.domain.id,
|
|
514
|
-
self.domain.name,
|
|
515
|
-
self.domain.tags,
|
|
516
|
-
)
|
|
517
|
-
self.assertEqual(datalist, data)
|
|
526
|
+
self.assertEqual(self.columns, columns)
|
|
527
|
+
self.assertEqual(self.datalist, data)
|