blob: c8fe7b76e988636a966e936b4b3f949cb2930945 [file] [log] [blame]
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +00001# Copyright 2015 NEC Corporation. All rights reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14
15import mock
16import random
17import six
18
19from tempest.services.compute.json import agents_client
20from tempest.services.compute.json import aggregates_client
21from tempest.services.compute.json import availability_zone_client
22from tempest.services.compute.json import certificates_client
23from tempest.services.compute.json import extensions_client
24from tempest.services.compute.json import fixed_ips_client
25from tempest.services.compute.json import flavors_client
26from tempest.services.compute.json import floating_ips_client
27from tempest.services.compute.json import hosts_client
28from tempest.services.compute.json import hypervisor_client
29from tempest.services.compute.json import images_client
30from tempest.services.compute.json import instance_usage_audit_log_client
31from tempest.services.compute.json import interfaces_client
32from tempest.services.compute.json import keypairs_client
33from tempest.services.compute.json import limits_client
34from tempest.services.compute.json import migrations_client
35from tempest.services.compute.json import networks_client as nova_net_client
36from tempest.services.compute.json import quotas_client
37from tempest.services.compute.json import security_group_default_rules_client \
38 as nova_secgrop_default_client
39from tempest.services.compute.json import security_groups_client
40from tempest.services.compute.json import servers_client
41from tempest.services.compute.json import services_client
42from tempest.services.compute.json import tenant_usages_client
43from tempest.services.compute.json import volumes_extensions_client
44from tempest.services.database.json import flavors_client as db_flavor_client
45from tempest.services.database.json import versions_client as db_version_client
46from tempest.services.network.json import network_client
Ken'ichi Ohmichi564b2ad2015-01-22 02:08:59 +000047from tempest.services.object_storage import account_client
48from tempest.services.object_storage import container_client
49from tempest.services.object_storage import object_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000050from tempest.services.orchestration.json import orchestration_client
51from tempest.tests import base
52
53
54class TestServiceClient(base.TestCase):
55
56 @mock.patch('tempest_lib.common.rest_client.RestClient.__init__')
57 def test_service_client_creations_with_specified_args(self, mock_init):
58 test_clients = [
59 agents_client.AgentsClientJSON,
60 aggregates_client.AggregatesClientJSON,
61 availability_zone_client.AvailabilityZoneClientJSON,
62 certificates_client.CertificatesClientJSON,
63 extensions_client.ExtensionsClientJSON,
64 fixed_ips_client.FixedIPsClientJSON,
65 flavors_client.FlavorsClientJSON,
66 floating_ips_client.FloatingIPsClientJSON,
67 hosts_client.HostsClientJSON,
68 hypervisor_client.HypervisorClientJSON,
69 images_client.ImagesClientJSON,
70 instance_usage_audit_log_client.InstanceUsagesAuditLogClientJSON,
71 interfaces_client.InterfacesClientJSON,
72 keypairs_client.KeyPairsClientJSON,
73 limits_client.LimitsClientJSON,
74 migrations_client.MigrationsClientJSON,
75 nova_net_client.NetworksClientJSON,
76 quotas_client.QuotasClientJSON,
77 quotas_client.QuotaClassesClientJSON,
78 nova_secgrop_default_client.SecurityGroupDefaultRulesClientJSON,
79 security_groups_client.SecurityGroupsClientJSON,
80 servers_client.ServersClientJSON,
81 services_client.ServicesClientJSON,
82 tenant_usages_client.TenantUsagesClientJSON,
83 volumes_extensions_client.VolumesExtensionsClientJSON,
84 db_flavor_client.DatabaseFlavorsClientJSON,
85 db_version_client.DatabaseVersionsClientJSON,
86 network_client.NetworkClientJSON,
Ken'ichi Ohmichi564b2ad2015-01-22 02:08:59 +000087 account_client.AccountClient,
88 container_client.ContainerClient,
89 object_client.ObjectClient,
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000090 orchestration_client.OrchestrationClient]
91
92 for client in test_clients:
93 fake_string = six.text_type(random.randint(1, 0x7fffffff))
94 auth = 'auth' + fake_string
95 service = 'service' + fake_string
96 region = 'region' + fake_string
97 params = {
98 'endpoint_type': 'URL' + fake_string,
99 'build_interval': random.randint(1, 100),
100 'build_timeout': random.randint(1, 100),
101 'disable_ssl_certificate_validation':
102 True if random.randint(0, 1) else False,
103 'ca_certs': None,
104 'trace_requests': 'foo' + fake_string
105 }
106 client(auth, service, region, **params)
107 mock_init.assert_called_once_with(auth, service, region, **params)
108 mock_init.reset_mock()