blob: 8a2782d035f8d61e2647a297d6e7b8695152ef9a [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
Ken'ichi Ohmichi1f88ece2015-01-23 03:33:11 +000019from tempest.services.baremetal.v1.json import baremetal_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000020from tempest.services.compute.json import agents_client
21from tempest.services.compute.json import aggregates_client
22from tempest.services.compute.json import availability_zone_client
23from tempest.services.compute.json import certificates_client
24from tempest.services.compute.json import extensions_client
25from tempest.services.compute.json import fixed_ips_client
26from tempest.services.compute.json import flavors_client
27from tempest.services.compute.json import floating_ips_client
28from tempest.services.compute.json import hosts_client
29from tempest.services.compute.json import hypervisor_client
30from tempest.services.compute.json import images_client
31from tempest.services.compute.json import instance_usage_audit_log_client
32from tempest.services.compute.json import interfaces_client
33from tempest.services.compute.json import keypairs_client
34from tempest.services.compute.json import limits_client
35from tempest.services.compute.json import migrations_client
36from tempest.services.compute.json import networks_client as nova_net_client
37from tempest.services.compute.json import quotas_client
38from tempest.services.compute.json import security_group_default_rules_client \
39 as nova_secgrop_default_client
40from tempest.services.compute.json import security_groups_client
41from tempest.services.compute.json import servers_client
42from tempest.services.compute.json import services_client
43from tempest.services.compute.json import tenant_usages_client
44from tempest.services.compute.json import volumes_extensions_client
45from tempest.services.database.json import flavors_client as db_flavor_client
46from tempest.services.database.json import versions_client as db_version_client
Ken'ichi Ohmichi2183a652015-01-22 05:00:20 +000047from tempest.services.messaging.json import messaging_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000048from tempest.services.network.json import network_client
Ken'ichi Ohmichi564b2ad2015-01-22 02:08:59 +000049from tempest.services.object_storage import account_client
50from tempest.services.object_storage import container_client
51from tempest.services.object_storage import object_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000052from tempest.services.orchestration.json import orchestration_client
Ken'ichi Ohmichid5dba1c2015-01-23 02:23:22 +000053from tempest.services.telemetry.json import telemetry_client
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000054from tempest.tests import base
55
56
57class TestServiceClient(base.TestCase):
58
59 @mock.patch('tempest_lib.common.rest_client.RestClient.__init__')
60 def test_service_client_creations_with_specified_args(self, mock_init):
61 test_clients = [
Ken'ichi Ohmichi1f88ece2015-01-23 03:33:11 +000062 baremetal_client.BaremetalClientJSON,
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000063 agents_client.AgentsClientJSON,
64 aggregates_client.AggregatesClientJSON,
65 availability_zone_client.AvailabilityZoneClientJSON,
66 certificates_client.CertificatesClientJSON,
67 extensions_client.ExtensionsClientJSON,
68 fixed_ips_client.FixedIPsClientJSON,
69 flavors_client.FlavorsClientJSON,
70 floating_ips_client.FloatingIPsClientJSON,
71 hosts_client.HostsClientJSON,
72 hypervisor_client.HypervisorClientJSON,
73 images_client.ImagesClientJSON,
74 instance_usage_audit_log_client.InstanceUsagesAuditLogClientJSON,
75 interfaces_client.InterfacesClientJSON,
76 keypairs_client.KeyPairsClientJSON,
77 limits_client.LimitsClientJSON,
78 migrations_client.MigrationsClientJSON,
79 nova_net_client.NetworksClientJSON,
80 quotas_client.QuotasClientJSON,
81 quotas_client.QuotaClassesClientJSON,
82 nova_secgrop_default_client.SecurityGroupDefaultRulesClientJSON,
83 security_groups_client.SecurityGroupsClientJSON,
84 servers_client.ServersClientJSON,
85 services_client.ServicesClientJSON,
86 tenant_usages_client.TenantUsagesClientJSON,
87 volumes_extensions_client.VolumesExtensionsClientJSON,
88 db_flavor_client.DatabaseFlavorsClientJSON,
89 db_version_client.DatabaseVersionsClientJSON,
Ken'ichi Ohmichi2183a652015-01-22 05:00:20 +000090 messaging_client.MessagingClientJSON,
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000091 network_client.NetworkClientJSON,
Ken'ichi Ohmichi564b2ad2015-01-22 02:08:59 +000092 account_client.AccountClient,
93 container_client.ContainerClient,
94 object_client.ObjectClient,
Ken'ichi Ohmichid5dba1c2015-01-23 02:23:22 +000095 orchestration_client.OrchestrationClient,
96 telemetry_client.TelemetryClientJSON]
Ken'ichi Ohmichid7df3832015-01-22 02:56:54 +000097
98 for client in test_clients:
99 fake_string = six.text_type(random.randint(1, 0x7fffffff))
100 auth = 'auth' + fake_string
101 service = 'service' + fake_string
102 region = 'region' + fake_string
103 params = {
104 'endpoint_type': 'URL' + fake_string,
105 'build_interval': random.randint(1, 100),
106 'build_timeout': random.randint(1, 100),
107 'disable_ssl_certificate_validation':
108 True if random.randint(0, 1) else False,
109 'ca_certs': None,
110 'trace_requests': 'foo' + fake_string
111 }
112 client(auth, service, region, **params)
113 mock_init.assert_called_once_with(auth, service, region, **params)
114 mock_init.reset_mock()