blob: d8a5ec5e6f7aea893ae63916967d6475af8f41c9 [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
Ken'ichi Ohmichi2183a652015-01-22 05:00:20 +000046from tempest.services.messaging.json import messaging_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000047from tempest.services.network.json import network_client
Ken'ichi Ohmichi564b2ad2015-01-22 02:08:59 +000048from tempest.services.object_storage import account_client
49from tempest.services.object_storage import container_client
50from tempest.services.object_storage import object_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000051from tempest.services.orchestration.json import orchestration_client
52from tempest.tests import base
53
54
55class TestServiceClient(base.TestCase):
56
57 @mock.patch('tempest_lib.common.rest_client.RestClient.__init__')
58 def test_service_client_creations_with_specified_args(self, mock_init):
59 test_clients = [
60 agents_client.AgentsClientJSON,
61 aggregates_client.AggregatesClientJSON,
62 availability_zone_client.AvailabilityZoneClientJSON,
63 certificates_client.CertificatesClientJSON,
64 extensions_client.ExtensionsClientJSON,
65 fixed_ips_client.FixedIPsClientJSON,
66 flavors_client.FlavorsClientJSON,
67 floating_ips_client.FloatingIPsClientJSON,
68 hosts_client.HostsClientJSON,
69 hypervisor_client.HypervisorClientJSON,
70 images_client.ImagesClientJSON,
71 instance_usage_audit_log_client.InstanceUsagesAuditLogClientJSON,
72 interfaces_client.InterfacesClientJSON,
73 keypairs_client.KeyPairsClientJSON,
74 limits_client.LimitsClientJSON,
75 migrations_client.MigrationsClientJSON,
76 nova_net_client.NetworksClientJSON,
77 quotas_client.QuotasClientJSON,
78 quotas_client.QuotaClassesClientJSON,
79 nova_secgrop_default_client.SecurityGroupDefaultRulesClientJSON,
80 security_groups_client.SecurityGroupsClientJSON,
81 servers_client.ServersClientJSON,
82 services_client.ServicesClientJSON,
83 tenant_usages_client.TenantUsagesClientJSON,
84 volumes_extensions_client.VolumesExtensionsClientJSON,
85 db_flavor_client.DatabaseFlavorsClientJSON,
86 db_version_client.DatabaseVersionsClientJSON,
Ken'ichi Ohmichi2183a652015-01-22 05:00:20 +000087 messaging_client.MessagingClientJSON,
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000088 network_client.NetworkClientJSON,
Ken'ichi Ohmichi564b2ad2015-01-22 02:08:59 +000089 account_client.AccountClient,
90 container_client.ContainerClient,
91 object_client.ObjectClient,
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000092 orchestration_client.OrchestrationClient]
93
94 for client in test_clients:
95 fake_string = six.text_type(random.randint(1, 0x7fffffff))
96 auth = 'auth' + fake_string
97 service = 'service' + fake_string
98 region = 'region' + fake_string
99 params = {
100 'endpoint_type': 'URL' + fake_string,
101 'build_interval': random.randint(1, 100),
102 'build_timeout': random.randint(1, 100),
103 'disable_ssl_certificate_validation':
104 True if random.randint(0, 1) else False,
105 'ca_certs': None,
106 'trace_requests': 'foo' + fake_string
107 }
108 client(auth, service, region, **params)
109 mock_init.assert_called_once_with(auth, service, region, **params)
110 mock_init.reset_mock()