python-openstackclient 10.0.0__py3-none-any.whl → 10.1.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/common/availability_zone.py +1 -1
- openstackclient/common/module.py +21 -27
- openstackclient/common/pagination.py +42 -4
- openstackclient/common/project_cleanup.py +1 -2
- openstackclient/common/quota.py +9 -5
- openstackclient/compute/v2/flavor.py +3 -1
- openstackclient/compute/v2/hypervisor.py +2 -0
- openstackclient/compute/v2/keypair.py +6 -2
- openstackclient/compute/v2/server.py +21 -12
- openstackclient/compute/v2/server_event.py +8 -1
- openstackclient/compute/v2/server_group.py +2 -0
- openstackclient/compute/v2/server_migration.py +3 -0
- openstackclient/compute/v2/server_volume.py +3 -1
- openstackclient/compute/v2/service.py +3 -1
- openstackclient/compute/v2/usage.py +2 -2
- openstackclient/identity/common.py +5 -1
- openstackclient/identity/v3/access_rule.py +6 -0
- openstackclient/identity/v3/application_credential.py +10 -3
- openstackclient/identity/v3/credential.py +4 -2
- openstackclient/identity/v3/domain.py +4 -2
- openstackclient/identity/v3/endpoint.py +57 -45
- openstackclient/identity/v3/federation_protocol.py +7 -5
- openstackclient/identity/v3/group.py +11 -10
- openstackclient/identity/v3/identity_provider.py +4 -1
- openstackclient/identity/v3/limit.py +5 -2
- openstackclient/identity/v3/mapping.py +36 -19
- openstackclient/identity/v3/project.py +18 -5
- openstackclient/identity/v3/region.py +4 -2
- openstackclient/identity/v3/registered_limit.py +3 -2
- openstackclient/identity/v3/role.py +2 -1
- openstackclient/identity/v3/role_assignment.py +3 -2
- openstackclient/identity/v3/service.py +4 -2
- openstackclient/identity/v3/service_provider.py +4 -2
- openstackclient/identity/v3/trust.py +8 -5
- openstackclient/identity/v3/user.py +38 -11
- openstackclient/image/v2/cache.py +2 -2
- openstackclient/image/v2/image.py +15 -9
- openstackclient/image/v2/metadef_namespaces.py +11 -10
- openstackclient/image/v2/metadef_objects.py +5 -5
- openstackclient/image/v2/metadef_properties.py +7 -4
- openstackclient/image/v2/task.py +11 -22
- openstackclient/network/utils.py +0 -41
- openstackclient/network/v2/address_group.py +13 -1
- openstackclient/network/v2/address_scope.py +13 -8
- openstackclient/network/v2/bgpvpn/bgpvpn.py +33 -19
- openstackclient/network/v2/bgpvpn/network_association.py +25 -13
- openstackclient/network/v2/bgpvpn/port_association.py +35 -21
- openstackclient/network/v2/bgpvpn/router_association.py +27 -14
- openstackclient/network/v2/default_security_group_rule.py +14 -6
- openstackclient/network/v2/floating_ip.py +12 -4
- openstackclient/network/v2/floating_ip_port_forwarding.py +12 -2
- openstackclient/network/v2/fwaas/group.py +34 -1
- openstackclient/network/v2/fwaas/rule.py +39 -3
- openstackclient/network/v2/ip_availability.py +13 -4
- openstackclient/network/v2/l3_conntrack_helper.py +14 -1
- openstackclient/network/v2/local_ip.py +4 -1
- openstackclient/network/v2/local_ip_association.py +4 -1
- openstackclient/network/v2/ndp_proxy.py +4 -1
- openstackclient/network/v2/network.py +87 -20
- openstackclient/network/v2/network_agent.py +32 -10
- openstackclient/network/v2/network_auto_allocated_topology.py +6 -5
- openstackclient/network/v2/network_flavor.py +19 -6
- openstackclient/network/v2/network_flavor_profile.py +20 -6
- openstackclient/network/v2/network_meter.py +19 -6
- openstackclient/network/v2/network_meter_rule.py +20 -2
- openstackclient/network/v2/network_qos_policy.py +15 -7
- openstackclient/network/v2/network_qos_rule.py +16 -1
- openstackclient/network/v2/network_qos_rule_type.py +16 -5
- openstackclient/network/v2/network_rbac.py +12 -5
- openstackclient/network/v2/network_segment.py +13 -1
- openstackclient/network/v2/network_segment_range.py +15 -3
- openstackclient/network/v2/network_trunk.py +4 -1
- openstackclient/network/v2/port.py +88 -12
- openstackclient/network/v2/router.py +27 -16
- openstackclient/network/v2/security_group.py +18 -49
- openstackclient/network/v2/security_group_rule.py +18 -5
- openstackclient/network/v2/subnet.py +15 -7
- openstackclient/network/v2/subnet_pool.py +13 -8
- openstackclient/network/v2/taas/tap_flow.py +13 -3
- openstackclient/network/v2/taas/tap_mirror.py +7 -4
- openstackclient/network/v2/taas/tap_service.py +4 -1
- openstackclient/object/v1/container.py +3 -1
- openstackclient/object/v1/object.py +3 -1
- openstackclient/tests/functional/identity/v3/common.py +34 -0
- openstackclient/tests/functional/identity/v3/test_application_credential.py +1 -1
- openstackclient/tests/functional/identity/v3/test_mapping.py +81 -0
- openstackclient/tests/functional/volume/v3/test_volume_group.py +163 -0
- openstackclient/tests/unit/common/test_limits.py +1 -1
- openstackclient/tests/unit/common/test_module.py +77 -44
- openstackclient/tests/unit/common/test_quota.py +9 -0
- openstackclient/tests/unit/compute/v2/fakes.py +1 -57
- openstackclient/tests/unit/compute/v2/test_agent.py +4 -4
- openstackclient/tests/unit/compute/v2/test_aggregate.py +1 -1
- openstackclient/tests/unit/compute/v2/test_console.py +2 -2
- openstackclient/tests/unit/compute/v2/test_console_connection.py +1 -1
- openstackclient/tests/unit/compute/v2/test_flavor.py +1 -1
- openstackclient/tests/unit/compute/v2/test_host.py +3 -3
- openstackclient/tests/unit/compute/v2/test_hypervisor.py +2 -2
- openstackclient/tests/unit/compute/v2/test_hypervisor_stats.py +1 -1
- openstackclient/tests/unit/compute/v2/test_keypair.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server.py +15 -15
- openstackclient/tests/unit/compute/v2/test_server_backup.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_event.py +2 -2
- openstackclient/tests/unit/compute/v2/test_server_group.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_image.py +1 -1
- openstackclient/tests/unit/compute/v2/test_server_migration.py +4 -4
- openstackclient/tests/unit/compute/v2/test_server_share.py +4 -4
- openstackclient/tests/unit/compute/v2/test_server_volume.py +2 -2
- openstackclient/tests/unit/compute/v2/test_service.py +3 -3
- openstackclient/tests/unit/compute/v2/test_usage.py +1 -1
- openstackclient/tests/unit/identity/v2_0/fakes.py +3 -7
- openstackclient/tests/unit/identity/v2_0/test_endpoint.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_project.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_role.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_role_assignment.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_service.py +1 -1
- openstackclient/tests/unit/identity/v2_0/test_token.py +2 -2
- openstackclient/tests/unit/identity/v2_0/test_user.py +1 -1
- openstackclient/tests/unit/identity/v3/fakes.py +5 -38
- openstackclient/tests/unit/identity/v3/test_access_rule.py +3 -3
- openstackclient/tests/unit/identity/v3/test_application_credential.py +4 -4
- openstackclient/tests/unit/identity/v3/test_credential.py +5 -5
- openstackclient/tests/unit/identity/v3/test_domain.py +5 -5
- openstackclient/tests/unit/identity/v3/test_endpoint.py +6 -6
- openstackclient/tests/unit/identity/v3/test_endpoint_group.py +1 -1
- openstackclient/tests/unit/identity/v3/test_group.py +8 -8
- openstackclient/tests/unit/identity/v3/test_implied_role.py +1 -1
- openstackclient/tests/unit/identity/v3/test_limit.py +5 -5
- openstackclient/tests/unit/identity/v3/test_mappings.py +163 -79
- openstackclient/tests/unit/identity/v3/test_project.py +28 -5
- openstackclient/tests/unit/identity/v3/test_protocol.py +3 -3
- openstackclient/tests/unit/identity/v3/test_region.py +5 -5
- openstackclient/tests/unit/identity/v3/test_registered_limit.py +5 -5
- openstackclient/tests/unit/identity/v3/test_role.py +8 -8
- openstackclient/tests/unit/identity/v3/test_role_assignment.py +1 -1
- openstackclient/tests/unit/identity/v3/test_service.py +5 -5
- openstackclient/tests/unit/identity/v3/test_token.py +2 -2
- openstackclient/tests/unit/identity/v3/test_trust.py +4 -4
- openstackclient/tests/unit/identity/v3/test_user.py +73 -6
- openstackclient/tests/unit/network/v2/fakes.py +5 -77
- openstackclient/tests/unit/network/v2/fwaas/test_group.py +28 -2
- openstackclient/tests/unit/network/v2/fwaas/test_rule.py +28 -3
- openstackclient/tests/unit/network/v2/test_address_group.py +24 -0
- openstackclient/tests/unit/network/v2/test_address_scope.py +24 -0
- openstackclient/tests/unit/network/v2/test_floating_ip.py +24 -0
- openstackclient/tests/unit/network/v2/test_floating_ip_port_forwarding.py +24 -0
- openstackclient/tests/unit/network/v2/test_ip_availability.py +25 -0
- openstackclient/tests/unit/network/v2/test_l3_conntrack_helper.py +29 -3
- openstackclient/tests/unit/network/v2/test_network.py +74 -12
- openstackclient/tests/unit/network/v2/test_network_agent.py +50 -1
- openstackclient/tests/unit/network/v2/test_network_flavor.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_flavor_profile.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_meter.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_qos_policy.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_qos_rule_type.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_rbac.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_segment.py +24 -0
- openstackclient/tests/unit/network/v2/test_network_segment_range.py +24 -0
- openstackclient/tests/unit/network/v2/test_port.py +166 -0
- openstackclient/tests/unit/network/v2/test_router.py +28 -7
- openstackclient/tests/unit/network/v2/test_security_group.py +22 -0
- openstackclient/tests/unit/network/v2/test_security_group_rule.py +25 -0
- openstackclient/tests/unit/network/v2/test_subnet.py +28 -4
- openstackclient/tests/unit/network/v2/test_subnet_pool.py +24 -0
- openstackclient/tests/unit/volume/v2/fakes.py +20 -140
- openstackclient/tests/unit/volume/v2/test_volume_backup.py +5 -9
- openstackclient/tests/unit/volume/v2/test_volume_snapshot.py +6 -0
- openstackclient/tests/unit/volume/v3/fakes.py +204 -100
- openstackclient/tests/unit/volume/v3/test_backup_record.py +114 -0
- openstackclient/tests/unit/volume/v3/test_consistency_group.py +720 -0
- openstackclient/tests/unit/volume/v3/test_consistency_group_snapshot.py +354 -0
- openstackclient/tests/unit/volume/v3/test_qos_specs.py +455 -0
- openstackclient/tests/unit/volume/v3/test_volume_attachment.py +2 -0
- openstackclient/tests/unit/volume/v3/test_volume_backend.py +158 -0
- openstackclient/tests/unit/volume/v3/test_volume_backup.py +5 -9
- openstackclient/tests/unit/volume/v3/test_volume_group_type.py +65 -0
- openstackclient/tests/unit/volume/v3/test_volume_host.py +115 -0
- openstackclient/tests/unit/volume/v3/test_volume_snapshot.py +6 -0
- openstackclient/volume/v2/volume.py +4 -2
- openstackclient/volume/v2/volume_backup.py +2 -3
- openstackclient/volume/v2/volume_snapshot.py +3 -4
- openstackclient/volume/v3/backup_record.py +94 -0
- openstackclient/volume/v3/consistency_group.py +400 -0
- openstackclient/volume/v3/consistency_group_snapshot.py +225 -0
- openstackclient/volume/v3/qos_specs.py +389 -0
- openstackclient/volume/v3/volume.py +4 -2
- openstackclient/volume/v3/volume_attachment.py +5 -1
- openstackclient/volume/v3/volume_backend.py +130 -0
- openstackclient/volume/v3/volume_backup.py +2 -3
- openstackclient/volume/v3/volume_group_snapshot.py +4 -6
- openstackclient/volume/v3/volume_group_type.py +1 -1
- openstackclient/volume/v3/volume_host.py +74 -0
- openstackclient/volume/v3/volume_message.py +3 -1
- openstackclient/volume/v3/volume_snapshot.py +2 -1
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/METADATA +3 -4
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/RECORD +202 -188
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/entry_points.txt +24 -24
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/AUTHORS +5 -0
- python_openstackclient-10.1.0.dist-info/pbr.json +1 -0
- python_openstackclient-10.0.0.dist-info/pbr.json +0 -1
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/WHEEL +0 -0
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/licenses/LICENSE +0 -0
- {python_openstackclient-10.0.0.dist-info → python_openstackclient-10.1.0.dist-info}/top_level.txt +0 -0
|
@@ -12,109 +12,189 @@
|
|
|
12
12
|
# License for the specific language governing permissions and limitations
|
|
13
13
|
# under the License.
|
|
14
14
|
|
|
15
|
-
import copy
|
|
16
15
|
from unittest import mock
|
|
17
16
|
|
|
18
17
|
from osc_lib import exceptions
|
|
19
18
|
|
|
19
|
+
from openstack.identity.v3 import mapping as _mapping
|
|
20
|
+
from openstack.test import fakes as sdk_fakes
|
|
20
21
|
from openstackclient.identity.v3 import mapping
|
|
21
|
-
from openstackclient.tests.unit import fakes
|
|
22
22
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
MAPPING_RULES_FILE_PATH = '/tmp/path/to/file'
|
|
26
|
+
# Copied from
|
|
27
|
+
# https://opendev.org/openstack/keystone/src/branch/stable/2026.1/keystone/tests/unit/mapping_fixtures.py
|
|
28
|
+
EMPLOYEE_GROUP_ID = "0cd5e9"
|
|
29
|
+
CONTRACTOR_GROUP_ID = "85a868"
|
|
30
|
+
TESTER_GROUP_ID = "123"
|
|
31
|
+
DEVELOPER_GROUP_ID = "xyz"
|
|
32
|
+
MAPPING_RULES = [
|
|
33
|
+
{
|
|
34
|
+
"local": [
|
|
35
|
+
{"group": {"id": EMPLOYEE_GROUP_ID}},
|
|
36
|
+
{"user": {"name": "{0}"}},
|
|
37
|
+
],
|
|
38
|
+
"remote": [
|
|
39
|
+
{"type": "UserName"},
|
|
40
|
+
{
|
|
41
|
+
"type": "orgPersonType",
|
|
42
|
+
"not_any_of": ["Contractor", "SubContractor"],
|
|
43
|
+
},
|
|
44
|
+
{"type": "LastName", "any_one_of": ["Bo"]},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"local": [
|
|
49
|
+
{"group": {"id": CONTRACTOR_GROUP_ID}},
|
|
50
|
+
{"user": {"name": "{0}"}},
|
|
51
|
+
],
|
|
52
|
+
"remote": [
|
|
53
|
+
{"type": "UserName"},
|
|
54
|
+
{
|
|
55
|
+
"type": "orgPersonType",
|
|
56
|
+
"any_one_of": ["Contractor", "SubContractor"],
|
|
57
|
+
},
|
|
58
|
+
{"type": "FirstName", "any_one_of": ["Jill"]},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
]
|
|
62
|
+
MAPPING_RULES_2 = {
|
|
63
|
+
"rules": [
|
|
64
|
+
{
|
|
65
|
+
"local": [
|
|
66
|
+
{
|
|
67
|
+
"user": {"name": "{0} {1}", "email": "{2}"},
|
|
68
|
+
"group": {"id": EMPLOYEE_GROUP_ID},
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"remote": [
|
|
72
|
+
{"type": "FirstName"},
|
|
73
|
+
{"type": "LastName"},
|
|
74
|
+
{"type": "Email"},
|
|
75
|
+
{
|
|
76
|
+
"type": "orgPersonType",
|
|
77
|
+
"any_one_of": ["Admin", "Big Cheese"],
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"local": [{"user": {"name": "{0}", "email": "{1}"}}],
|
|
83
|
+
"remote": [
|
|
84
|
+
{"type": "UserName"},
|
|
85
|
+
{"type": "Email"},
|
|
86
|
+
{
|
|
87
|
+
"type": "orgPersonType",
|
|
88
|
+
"not_any_of": [
|
|
89
|
+
"Admin",
|
|
90
|
+
"Employee",
|
|
91
|
+
"Contractor",
|
|
92
|
+
"Tester",
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"local": [
|
|
99
|
+
{"group": {"id": TESTER_GROUP_ID}},
|
|
100
|
+
{"group": {"id": DEVELOPER_GROUP_ID}},
|
|
101
|
+
{"user": {"name": "{0}"}},
|
|
102
|
+
],
|
|
103
|
+
"remote": [
|
|
104
|
+
{"type": "UserName"},
|
|
105
|
+
{"type": "orgPersonType", "any_one_of": ["Tester"]},
|
|
106
|
+
{
|
|
107
|
+
"type": "Email",
|
|
108
|
+
"any_one_of": [".*@example.com$"],
|
|
109
|
+
"regex": True,
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class TestMappingCreate(identity_fakes.TestFederatedIdentity):
|
|
26
118
|
def setUp(self):
|
|
27
119
|
super().setUp()
|
|
28
120
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
self.mapping_mock.reset_mock()
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
class TestMappingCreate(TestMapping):
|
|
35
|
-
def setUp(self):
|
|
36
|
-
super().setUp()
|
|
37
|
-
self.mapping_mock.create.return_value = fakes.FakeResource(
|
|
38
|
-
None, copy.deepcopy(identity_fakes.MAPPING_RESPONSE), loaded=True
|
|
121
|
+
self.mapping = sdk_fakes.generate_fake_resource(
|
|
122
|
+
_mapping.Mapping, rules=MAPPING_RULES, schema_version=None
|
|
39
123
|
)
|
|
124
|
+
self.identity_sdk_client.create_mapping.return_value = self.mapping
|
|
125
|
+
|
|
40
126
|
self.cmd = mapping.CreateMapping(self.app, None)
|
|
41
127
|
|
|
42
128
|
def test_create_mapping(self):
|
|
43
129
|
arglist = [
|
|
44
130
|
'--rules',
|
|
45
|
-
|
|
46
|
-
|
|
131
|
+
MAPPING_RULES_FILE_PATH,
|
|
132
|
+
self.mapping.id,
|
|
47
133
|
]
|
|
48
134
|
verifylist = [
|
|
49
|
-
('mapping',
|
|
50
|
-
('rules',
|
|
135
|
+
('mapping', self.mapping.id),
|
|
136
|
+
('rules', MAPPING_RULES_FILE_PATH),
|
|
51
137
|
]
|
|
52
138
|
|
|
53
139
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
54
140
|
|
|
55
141
|
mocker = mock.Mock()
|
|
56
|
-
mocker.return_value =
|
|
142
|
+
mocker.return_value = MAPPING_RULES
|
|
57
143
|
with mock.patch(
|
|
58
144
|
"openstackclient.identity.v3.mapping.CreateMapping._read_rules",
|
|
59
145
|
mocker,
|
|
60
146
|
):
|
|
61
147
|
columns, data = self.cmd.take_action(parsed_args)
|
|
62
148
|
|
|
63
|
-
self.
|
|
64
|
-
|
|
65
|
-
rules=identity_fakes.MAPPING_RULES,
|
|
66
|
-
schema_version=None,
|
|
149
|
+
self.identity_sdk_client.create_mapping.assert_called_with(
|
|
150
|
+
id=self.mapping.id, rules=MAPPING_RULES, schema_version=None
|
|
67
151
|
)
|
|
68
152
|
|
|
69
|
-
collist = ('id', 'rules')
|
|
153
|
+
collist = ('id', 'rules', 'schema_version')
|
|
70
154
|
self.assertEqual(collist, columns)
|
|
71
155
|
|
|
72
|
-
datalist = (
|
|
156
|
+
datalist = (self.mapping.id, MAPPING_RULES, None)
|
|
73
157
|
self.assertEqual(datalist, data)
|
|
74
158
|
|
|
75
159
|
|
|
76
|
-
class TestMappingDelete(
|
|
160
|
+
class TestMappingDelete(identity_fakes.TestFederatedIdentity):
|
|
77
161
|
def setUp(self):
|
|
78
162
|
super().setUp()
|
|
79
|
-
self.mapping_mock.get.return_value = fakes.FakeResource(
|
|
80
|
-
None, copy.deepcopy(identity_fakes.MAPPING_RESPONSE), loaded=True
|
|
81
|
-
)
|
|
82
163
|
|
|
83
|
-
self.
|
|
164
|
+
self.mapping = sdk_fakes.generate_fake_resource(
|
|
165
|
+
_mapping.Mapping, rules=MAPPING_RULES, schema_version=None
|
|
166
|
+
)
|
|
167
|
+
self.identity_sdk_client.delete_mapping.return_value = None
|
|
84
168
|
self.cmd = mapping.DeleteMapping(self.app, None)
|
|
85
169
|
|
|
86
170
|
def test_delete_mapping(self):
|
|
87
|
-
arglist = [
|
|
88
|
-
verifylist = [('mapping', [
|
|
171
|
+
arglist = [self.mapping.id]
|
|
172
|
+
verifylist = [('mapping', [self.mapping.id])]
|
|
89
173
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
90
174
|
|
|
91
175
|
result = self.cmd.take_action(parsed_args)
|
|
92
176
|
|
|
93
|
-
self.
|
|
177
|
+
self.identity_sdk_client.delete_mapping.assert_called_with(
|
|
178
|
+
self.mapping.id, ignore_missing=False
|
|
179
|
+
)
|
|
94
180
|
self.assertIsNone(result)
|
|
95
181
|
|
|
96
182
|
|
|
97
|
-
class TestMappingList(
|
|
183
|
+
class TestMappingList(identity_fakes.TestFederatedIdentity):
|
|
98
184
|
def setUp(self):
|
|
99
185
|
super().setUp()
|
|
100
|
-
|
|
101
|
-
|
|
186
|
+
|
|
187
|
+
self.mapping = sdk_fakes.generate_fake_resource(
|
|
188
|
+
_mapping.Mapping, rules=MAPPING_RULES, schema_version='1.0'
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
self.extra_mapping = sdk_fakes.generate_fake_resource(
|
|
192
|
+
_mapping.Mapping, rules=MAPPING_RULES_2, schema_version='2.0'
|
|
102
193
|
)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
self.mapping_mock.list.return_value = [
|
|
108
|
-
fakes.FakeResource(
|
|
109
|
-
None,
|
|
110
|
-
{'id': identity_fakes.mapping_id, 'schema_version': '1.0'},
|
|
111
|
-
loaded=True,
|
|
112
|
-
),
|
|
113
|
-
fakes.FakeResource(
|
|
114
|
-
None,
|
|
115
|
-
{'id': 'extra_mapping', 'schema_version': '2.0'},
|
|
116
|
-
loaded=True,
|
|
117
|
-
),
|
|
194
|
+
|
|
195
|
+
self.identity_sdk_client.mappings.return_value = [
|
|
196
|
+
self.mapping,
|
|
197
|
+
self.extra_mapping,
|
|
118
198
|
]
|
|
119
199
|
|
|
120
200
|
# Get the command object to test
|
|
@@ -127,29 +207,30 @@ class TestMappingList(TestMapping):
|
|
|
127
207
|
|
|
128
208
|
columns, data = self.cmd.take_action(parsed_args)
|
|
129
209
|
|
|
130
|
-
self.
|
|
210
|
+
self.identity_sdk_client.mappings.assert_called_with()
|
|
131
211
|
|
|
132
212
|
collist = ('ID', 'schema_version')
|
|
133
213
|
self.assertEqual(collist, columns)
|
|
134
214
|
|
|
135
215
|
datalist = [
|
|
136
|
-
(
|
|
137
|
-
(
|
|
216
|
+
(self.mapping.id, '1.0'),
|
|
217
|
+
(self.extra_mapping.id, '2.0'),
|
|
138
218
|
]
|
|
139
219
|
self.assertEqual(datalist, data)
|
|
140
220
|
|
|
141
221
|
|
|
142
|
-
class TestMappingSet(
|
|
222
|
+
class TestMappingSet(identity_fakes.TestFederatedIdentity):
|
|
143
223
|
def setUp(self):
|
|
144
224
|
super().setUp()
|
|
145
225
|
|
|
146
|
-
self.
|
|
147
|
-
|
|
226
|
+
self.mapping = sdk_fakes.generate_fake_resource(
|
|
227
|
+
_mapping.Mapping, rules=MAPPING_RULES, schema_version='1.0'
|
|
148
228
|
)
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
None, identity_fakes.MAPPING_RESPONSE_2, loaded=True
|
|
229
|
+
self.mapping_2 = sdk_fakes.generate_fake_resource(
|
|
230
|
+
_mapping.Mapping, rules=MAPPING_RULES_2, schema_version='2.0'
|
|
152
231
|
)
|
|
232
|
+
self.identity_sdk_client.get_mapping.return_value = self.mapping
|
|
233
|
+
self.identity_sdk_client.update_mapping.return_value = self.mapping_2
|
|
153
234
|
|
|
154
235
|
# Get the command object to test
|
|
155
236
|
self.cmd = mapping.SetMapping(self.app, None)
|
|
@@ -157,26 +238,26 @@ class TestMappingSet(TestMapping):
|
|
|
157
238
|
def test_set_new_rules(self):
|
|
158
239
|
arglist = [
|
|
159
240
|
'--rules',
|
|
160
|
-
|
|
161
|
-
|
|
241
|
+
MAPPING_RULES_FILE_PATH,
|
|
242
|
+
self.mapping.id,
|
|
162
243
|
]
|
|
163
244
|
verifylist = [
|
|
164
|
-
('mapping',
|
|
165
|
-
('rules',
|
|
245
|
+
('mapping', self.mapping.id),
|
|
246
|
+
('rules', MAPPING_RULES_FILE_PATH),
|
|
166
247
|
]
|
|
167
248
|
|
|
168
249
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
169
250
|
|
|
170
251
|
mocker = mock.Mock()
|
|
171
|
-
mocker.return_value =
|
|
252
|
+
mocker.return_value = MAPPING_RULES_2
|
|
172
253
|
with mock.patch(
|
|
173
254
|
"openstackclient.identity.v3.mapping.SetMapping._read_rules",
|
|
174
255
|
mocker,
|
|
175
256
|
):
|
|
176
257
|
result = self.cmd.take_action(parsed_args)
|
|
177
|
-
self.
|
|
178
|
-
mapping=
|
|
179
|
-
rules=
|
|
258
|
+
self.identity_sdk_client.update_mapping.assert_called_with(
|
|
259
|
+
mapping=self.mapping.id,
|
|
260
|
+
rules=MAPPING_RULES_2,
|
|
180
261
|
schema_version=None,
|
|
181
262
|
)
|
|
182
263
|
|
|
@@ -185,12 +266,12 @@ class TestMappingSet(TestMapping):
|
|
|
185
266
|
def test_set_rules_wrong_file_path(self):
|
|
186
267
|
arglist = [
|
|
187
268
|
'--rules',
|
|
188
|
-
|
|
189
|
-
|
|
269
|
+
MAPPING_RULES_FILE_PATH,
|
|
270
|
+
self.mapping.id,
|
|
190
271
|
]
|
|
191
272
|
verifylist = [
|
|
192
|
-
('mapping',
|
|
193
|
-
('rules',
|
|
273
|
+
('mapping', self.mapping.id),
|
|
274
|
+
('rules', MAPPING_RULES_FILE_PATH),
|
|
194
275
|
]
|
|
195
276
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
196
277
|
|
|
@@ -199,27 +280,30 @@ class TestMappingSet(TestMapping):
|
|
|
199
280
|
)
|
|
200
281
|
|
|
201
282
|
|
|
202
|
-
class TestMappingShow(
|
|
283
|
+
class TestMappingShow(identity_fakes.TestFederatedIdentity):
|
|
203
284
|
def setUp(self):
|
|
204
285
|
super().setUp()
|
|
205
286
|
|
|
206
|
-
self.
|
|
207
|
-
|
|
287
|
+
self.mapping = sdk_fakes.generate_fake_resource(
|
|
288
|
+
_mapping.Mapping, rules=MAPPING_RULES, schema_version=None
|
|
208
289
|
)
|
|
290
|
+
self.identity_sdk_client.get_mapping.return_value = self.mapping
|
|
209
291
|
|
|
210
292
|
self.cmd = mapping.ShowMapping(self.app, None)
|
|
211
293
|
|
|
212
294
|
def test_mapping_show(self):
|
|
213
|
-
arglist = [
|
|
214
|
-
verifylist = [('mapping',
|
|
295
|
+
arglist = [self.mapping.id]
|
|
296
|
+
verifylist = [('mapping', self.mapping.id)]
|
|
215
297
|
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
216
298
|
|
|
217
299
|
columns, data = self.cmd.take_action(parsed_args)
|
|
218
300
|
|
|
219
|
-
self.
|
|
301
|
+
self.identity_sdk_client.get_mapping.assert_called_with(
|
|
302
|
+
self.mapping.id
|
|
303
|
+
)
|
|
220
304
|
|
|
221
|
-
collist = ('id', 'rules')
|
|
305
|
+
collist = ('id', 'rules', 'schema_version')
|
|
222
306
|
self.assertEqual(collist, columns)
|
|
223
307
|
|
|
224
|
-
datalist = (
|
|
308
|
+
datalist = (self.mapping.id, MAPPING_RULES, None)
|
|
225
309
|
self.assertEqual(datalist, data)
|
|
@@ -25,7 +25,7 @@ from openstackclient.identity.v3 import project
|
|
|
25
25
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
class TestProjectCreate(identity_fakes.
|
|
28
|
+
class TestProjectCreate(identity_fakes.TestIdentity):
|
|
29
29
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
30
30
|
|
|
31
31
|
columns = (
|
|
@@ -863,7 +863,7 @@ class TestProjectCreate(identity_fakes.TestIdentityv3):
|
|
|
863
863
|
)
|
|
864
864
|
|
|
865
865
|
|
|
866
|
-
class TestProjectDelete(identity_fakes.
|
|
866
|
+
class TestProjectDelete(identity_fakes.TestIdentity):
|
|
867
867
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
868
868
|
|
|
869
869
|
def setUp(self):
|
|
@@ -992,7 +992,7 @@ class TestProjectDelete(identity_fakes.TestIdentityv3):
|
|
|
992
992
|
)
|
|
993
993
|
|
|
994
994
|
|
|
995
|
-
class TestProjectList(identity_fakes.
|
|
995
|
+
class TestProjectList(identity_fakes.TestIdentity):
|
|
996
996
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
997
997
|
project = sdk_fakes.generate_fake_resource(
|
|
998
998
|
_project.Project, domain_id=domain.id
|
|
@@ -1273,8 +1273,31 @@ class TestProjectList(identity_fakes.TestIdentityv3):
|
|
|
1273
1273
|
self.assertEqual(self.columns, columns)
|
|
1274
1274
|
self.assertEqual(self.datalist, tuple(data))
|
|
1275
1275
|
|
|
1276
|
+
def test_project_list_with_pagination(self):
|
|
1277
|
+
self.identity_sdk_client.projects.return_value = [self.project]
|
|
1278
|
+
|
|
1279
|
+
arglist = [
|
|
1280
|
+
'--limit',
|
|
1281
|
+
'2',
|
|
1282
|
+
'--marker',
|
|
1283
|
+
'some-marker',
|
|
1284
|
+
]
|
|
1285
|
+
verifylist = [
|
|
1286
|
+
('limit', 2),
|
|
1287
|
+
('marker', 'some-marker'),
|
|
1288
|
+
]
|
|
1289
|
+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
|
|
1290
|
+
|
|
1291
|
+
columns, data = self.cmd.take_action(parsed_args)
|
|
1292
|
+
|
|
1293
|
+
kwargs = {'limit': 2, 'marker': 'some-marker'}
|
|
1294
|
+
self.identity_sdk_client.projects.assert_called_with(**kwargs)
|
|
1295
|
+
|
|
1296
|
+
self.assertEqual(self.columns, columns)
|
|
1297
|
+
self.assertEqual(self.datalist, tuple(data))
|
|
1298
|
+
|
|
1276
1299
|
|
|
1277
|
-
class TestProjectSet(identity_fakes.
|
|
1300
|
+
class TestProjectSet(identity_fakes.TestIdentity):
|
|
1278
1301
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
1279
1302
|
|
|
1280
1303
|
project_kwargs_no_options = {
|
|
@@ -1549,7 +1572,7 @@ class TestProjectSet(identity_fakes.TestIdentityv3):
|
|
|
1549
1572
|
self.assertIsNone(result)
|
|
1550
1573
|
|
|
1551
1574
|
|
|
1552
|
-
class TestProjectShow(identity_fakes.
|
|
1575
|
+
class TestProjectShow(identity_fakes.TestIdentity):
|
|
1553
1576
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
1554
1577
|
|
|
1555
1578
|
columns = (
|
|
@@ -49,7 +49,7 @@ class TestProtocolCreate(identity_fakes.TestFederatedIdentity):
|
|
|
49
49
|
columns, data = self.cmd.take_action(parsed_args)
|
|
50
50
|
self.identity_sdk_client.create_federation_protocol.assert_called_with(
|
|
51
51
|
name=self.proto.id,
|
|
52
|
-
|
|
52
|
+
idp=self.proto.idp_id,
|
|
53
53
|
mapping_id=self.proto.mapping_id,
|
|
54
54
|
)
|
|
55
55
|
|
|
@@ -89,7 +89,7 @@ class TestProtocolDelete(identity_fakes.TestFederatedIdentity):
|
|
|
89
89
|
result = self.cmd.take_action(parsed_args)
|
|
90
90
|
|
|
91
91
|
self.identity_sdk_client.delete_federation_protocol.assert_called_with(
|
|
92
|
-
|
|
92
|
+
idp=self.proto.idp_id,
|
|
93
93
|
protocol=self.proto.id,
|
|
94
94
|
ignore_missing=False,
|
|
95
95
|
)
|
|
@@ -208,7 +208,7 @@ class TestProtocolShow(identity_fakes.TestFederatedIdentity):
|
|
|
208
208
|
|
|
209
209
|
columns, data = self.cmd.take_action(parsed_args)
|
|
210
210
|
self.identity_sdk_client.get_federation_protocol.assert_called_with(
|
|
211
|
-
|
|
211
|
+
idp=self.proto.idp_id, protocol=self.proto.name
|
|
212
212
|
)
|
|
213
213
|
|
|
214
214
|
collist = ('id', 'identity_provider', 'mapping')
|
|
@@ -19,7 +19,7 @@ from openstackclient.identity.v3 import region
|
|
|
19
19
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
class TestRegionCreate(identity_fakes.
|
|
22
|
+
class TestRegionCreate(identity_fakes.TestIdentity):
|
|
23
23
|
region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
24
24
|
columns = (
|
|
25
25
|
'region',
|
|
@@ -121,7 +121,7 @@ class TestRegionCreate(identity_fakes.TestIdentityv3):
|
|
|
121
121
|
self.assertEqual(self.datalist, data)
|
|
122
122
|
|
|
123
123
|
|
|
124
|
-
class TestRegionDelete(identity_fakes.
|
|
124
|
+
class TestRegionDelete(identity_fakes.TestIdentity):
|
|
125
125
|
def setUp(self):
|
|
126
126
|
super().setUp()
|
|
127
127
|
|
|
@@ -148,7 +148,7 @@ class TestRegionDelete(identity_fakes.TestIdentityv3):
|
|
|
148
148
|
self.assertIsNone(result)
|
|
149
149
|
|
|
150
150
|
|
|
151
|
-
class TestRegionList(identity_fakes.
|
|
151
|
+
class TestRegionList(identity_fakes.TestIdentity):
|
|
152
152
|
region = sdk_fakes.generate_fake_resource(_region.Region)
|
|
153
153
|
columns = (
|
|
154
154
|
'Region',
|
|
@@ -207,7 +207,7 @@ class TestRegionList(identity_fakes.TestIdentityv3):
|
|
|
207
207
|
self.assertEqual(self.datalist, tuple(data))
|
|
208
208
|
|
|
209
209
|
|
|
210
|
-
class TestRegionSet(identity_fakes.
|
|
210
|
+
class TestRegionSet(identity_fakes.TestIdentity):
|
|
211
211
|
def setUp(self):
|
|
212
212
|
super().setUp()
|
|
213
213
|
|
|
@@ -280,7 +280,7 @@ class TestRegionSet(identity_fakes.TestIdentityv3):
|
|
|
280
280
|
self.assertIsNone(result)
|
|
281
281
|
|
|
282
282
|
|
|
283
|
-
class TestRegionShow(identity_fakes.
|
|
283
|
+
class TestRegionShow(identity_fakes.TestIdentity):
|
|
284
284
|
def setUp(self):
|
|
285
285
|
super().setUp()
|
|
286
286
|
|
|
@@ -21,7 +21,7 @@ from openstackclient.identity.v3 import registered_limit
|
|
|
21
21
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
class TestRegisteredLimitCreate(identity_fakes.
|
|
24
|
+
class TestRegisteredLimitCreate(identity_fakes.TestIdentity):
|
|
25
25
|
def setUp(self):
|
|
26
26
|
super().setUp()
|
|
27
27
|
|
|
@@ -165,7 +165,7 @@ class TestRegisteredLimitCreate(identity_fakes.TestIdentityv3):
|
|
|
165
165
|
self.assertEqual(datalist, data)
|
|
166
166
|
|
|
167
167
|
|
|
168
|
-
class TestRegisteredLimitDelete(identity_fakes.
|
|
168
|
+
class TestRegisteredLimitDelete(identity_fakes.TestIdentity):
|
|
169
169
|
def setUp(self):
|
|
170
170
|
super().setUp()
|
|
171
171
|
|
|
@@ -207,7 +207,7 @@ class TestRegisteredLimitDelete(identity_fakes.TestIdentityv3):
|
|
|
207
207
|
)
|
|
208
208
|
|
|
209
209
|
|
|
210
|
-
class TestRegisteredLimitShow(identity_fakes.
|
|
210
|
+
class TestRegisteredLimitShow(identity_fakes.TestIdentity):
|
|
211
211
|
def setUp(self):
|
|
212
212
|
super().setUp()
|
|
213
213
|
|
|
@@ -311,7 +311,7 @@ class TestRegisteredLimitShow(identity_fakes.TestIdentityv3):
|
|
|
311
311
|
self.assertEqual(datalist, data)
|
|
312
312
|
|
|
313
313
|
|
|
314
|
-
class TestRegisteredLimitSet(identity_fakes.
|
|
314
|
+
class TestRegisteredLimitSet(identity_fakes.TestIdentity):
|
|
315
315
|
def setUp(self):
|
|
316
316
|
super().setUp()
|
|
317
317
|
|
|
@@ -590,7 +590,7 @@ class TestRegisteredLimitSet(identity_fakes.TestIdentityv3):
|
|
|
590
590
|
self.assertEqual(datalist, data)
|
|
591
591
|
|
|
592
592
|
|
|
593
|
-
class TestRegisteredLimitList(identity_fakes.
|
|
593
|
+
class TestRegisteredLimitList(identity_fakes.TestIdentity):
|
|
594
594
|
def setUp(self):
|
|
595
595
|
super().setUp()
|
|
596
596
|
|
|
@@ -29,12 +29,12 @@ from openstackclient.identity.v3 import role
|
|
|
29
29
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
class TestRoleInherited(identity_fakes.
|
|
32
|
+
class TestRoleInherited(identity_fakes.TestIdentity):
|
|
33
33
|
def _is_inheritance_testcase(self):
|
|
34
34
|
return True
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
class TestRoleAdd(identity_fakes.
|
|
37
|
+
class TestRoleAdd(identity_fakes.TestIdentity):
|
|
38
38
|
def _is_inheritance_testcase(self):
|
|
39
39
|
return False
|
|
40
40
|
|
|
@@ -361,7 +361,7 @@ class TestRoleAddInherited(TestRoleAdd, TestRoleInherited):
|
|
|
361
361
|
pass
|
|
362
362
|
|
|
363
363
|
|
|
364
|
-
class TestRoleCreate(identity_fakes.
|
|
364
|
+
class TestRoleCreate(identity_fakes.TestIdentity):
|
|
365
365
|
collist = ('id', 'name', 'domain_id', 'description')
|
|
366
366
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
367
367
|
|
|
@@ -573,7 +573,7 @@ class TestRoleCreate(identity_fakes.TestIdentityv3):
|
|
|
573
573
|
self.assertEqual(datalist, data)
|
|
574
574
|
|
|
575
575
|
|
|
576
|
-
class TestRoleDelete(identity_fakes.
|
|
576
|
+
class TestRoleDelete(identity_fakes.TestIdentity):
|
|
577
577
|
def setUp(self):
|
|
578
578
|
super().setUp()
|
|
579
579
|
|
|
@@ -680,7 +680,7 @@ class TestRoleDelete(identity_fakes.TestIdentityv3):
|
|
|
680
680
|
)
|
|
681
681
|
|
|
682
682
|
|
|
683
|
-
class TestRoleList(identity_fakes.
|
|
683
|
+
class TestRoleList(identity_fakes.TestIdentity):
|
|
684
684
|
columns = (
|
|
685
685
|
'ID',
|
|
686
686
|
'Name',
|
|
@@ -767,7 +767,7 @@ class TestRoleList(identity_fakes.TestIdentityv3):
|
|
|
767
767
|
self.assertEqual(datalist, tuple(data))
|
|
768
768
|
|
|
769
769
|
|
|
770
|
-
class TestRoleRemove(identity_fakes.
|
|
770
|
+
class TestRoleRemove(identity_fakes.TestIdentity):
|
|
771
771
|
def _is_inheritance_testcase(self):
|
|
772
772
|
return False
|
|
773
773
|
|
|
@@ -1313,7 +1313,7 @@ class TestRoleRemove(identity_fakes.TestIdentityv3):
|
|
|
1313
1313
|
)
|
|
1314
1314
|
|
|
1315
1315
|
|
|
1316
|
-
class TestRoleSet(identity_fakes.
|
|
1316
|
+
class TestRoleSet(identity_fakes.TestIdentity):
|
|
1317
1317
|
def setUp(self):
|
|
1318
1318
|
super().setUp()
|
|
1319
1319
|
|
|
@@ -1474,7 +1474,7 @@ class TestRoleSet(identity_fakes.TestIdentityv3):
|
|
|
1474
1474
|
self.assertIsNone(result)
|
|
1475
1475
|
|
|
1476
1476
|
|
|
1477
|
-
class TestRoleShow(identity_fakes.
|
|
1477
|
+
class TestRoleShow(identity_fakes.TestIdentity):
|
|
1478
1478
|
domain = sdk_fakes.generate_fake_resource(_domain.Domain)
|
|
1479
1479
|
|
|
1480
1480
|
def setUp(self):
|
|
@@ -25,7 +25,7 @@ from openstackclient.identity.v3 import role_assignment
|
|
|
25
25
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
class TestRoleAssignmentList(identity_fakes.
|
|
28
|
+
class TestRoleAssignmentList(identity_fakes.TestIdentity):
|
|
29
29
|
columns = (
|
|
30
30
|
'Role',
|
|
31
31
|
'User',
|
|
@@ -22,7 +22,7 @@ from openstackclient.identity.v3 import service
|
|
|
22
22
|
from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
class TestServiceCreate(identity_fakes.
|
|
25
|
+
class TestServiceCreate(identity_fakes.TestIdentity):
|
|
26
26
|
columns = (
|
|
27
27
|
'id',
|
|
28
28
|
'name',
|
|
@@ -163,7 +163,7 @@ class TestServiceCreate(identity_fakes.TestIdentityv3):
|
|
|
163
163
|
self.assertEqual(self.datalist, data)
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
class TestServiceDelete(identity_fakes.
|
|
166
|
+
class TestServiceDelete(identity_fakes.TestIdentity):
|
|
167
167
|
service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
168
168
|
|
|
169
169
|
def setUp(self):
|
|
@@ -195,7 +195,7 @@ class TestServiceDelete(identity_fakes.TestIdentityv3):
|
|
|
195
195
|
self.assertIsNone(result)
|
|
196
196
|
|
|
197
197
|
|
|
198
|
-
class TestServiceList(identity_fakes.
|
|
198
|
+
class TestServiceList(identity_fakes.TestIdentity):
|
|
199
199
|
service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
200
200
|
|
|
201
201
|
def setUp(self):
|
|
@@ -259,7 +259,7 @@ class TestServiceList(identity_fakes.TestIdentityv3):
|
|
|
259
259
|
self.assertEqual(datalist, tuple(data))
|
|
260
260
|
|
|
261
261
|
|
|
262
|
-
class TestServiceSet(identity_fakes.
|
|
262
|
+
class TestServiceSet(identity_fakes.TestIdentity):
|
|
263
263
|
service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
264
264
|
|
|
265
265
|
def setUp(self):
|
|
@@ -420,7 +420,7 @@ class TestServiceSet(identity_fakes.TestIdentityv3):
|
|
|
420
420
|
self.assertIsNone(result)
|
|
421
421
|
|
|
422
422
|
|
|
423
|
-
class TestServiceShow(identity_fakes.
|
|
423
|
+
class TestServiceShow(identity_fakes.TestIdentity):
|
|
424
424
|
service = sdk_fakes.generate_fake_resource(_service.Service)
|
|
425
425
|
|
|
426
426
|
def setUp(self):
|