blob: 3ece11d0b30ef9c84b72ca83b0c2e6fc3f55c6d7 [file] [log] [blame]
Ryan Rossiter9228bf72016-02-25 03:06:12 +00001# Copyright 2016 IBM Corp.
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
Andrea Frittoli5fdfc9b2017-08-17 12:06:04 +010016from oslo_config import cfg
Ryan Rossiter9228bf72016-02-25 03:06:12 +000017
18from tempest import clients
19from tempest.common import credentials_factory as credentials
Matthew Treinishb19c55d2017-07-17 12:38:35 -040020from tempest.lib.common import fixed_network
Ryan Rossiter9228bf72016-02-25 03:06:12 +000021from tempest import test
Matthew Treinishffad78a2016-04-16 14:39:52 -040022from tempest.tests import base
Ryan Rossiter9228bf72016-02-25 03:06:12 +000023from tempest.tests import fake_config
Ryan Rossiter9228bf72016-02-25 03:06:12 +000024
25
26class TestBaseTestCase(base.TestCase):
27 def setUp(self):
28 super(TestBaseTestCase, self).setUp()
29 self.useFixture(fake_config.ConfigFixture())
30 self.fixed_network_name = 'fixed-net'
Andrea Frittoli5fdfc9b2017-08-17 12:06:04 +010031 cfg.CONF.set_default('fixed_network_name', self.fixed_network_name,
32 'compute')
33 cfg.CONF.set_default('neutron', True, 'service_available')
Ryan Rossiter9228bf72016-02-25 03:06:12 +000034
35 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
36 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
37 @mock.patch.object(fixed_network, 'get_tenant_network')
38 def test_get_tenant_network(self, mock_gtn, mock_gprov, mock_gcm):
39 net_client = mock.Mock()
40 mock_prov = mock.Mock()
41 mock_gcm.return_value.compute_networks_client = net_client
42 mock_gprov.return_value = mock_prov
43
44 test.BaseTestCase.get_tenant_network()
45
46 mock_gcm.assert_called_once_with(credential_type='primary')
47 mock_gprov.assert_called_once_with()
48 mock_gtn.assert_called_once_with(mock_prov, net_client,
49 self.fixed_network_name)
50
51 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
52 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
53 @mock.patch.object(fixed_network, 'get_tenant_network')
54 @mock.patch.object(test.BaseTestCase, 'get_identity_version')
55 @mock.patch.object(credentials, 'is_admin_available')
56 @mock.patch.object(clients, 'Manager')
57 def test_get_tenant_network_with_nova_net(self, mock_man, mock_iaa,
58 mock_giv, mock_gtn, mock_gcp,
59 mock_gcm):
Andrea Frittoli5fdfc9b2017-08-17 12:06:04 +010060 cfg.CONF.set_default('neutron', False, 'service_available')
Ryan Rossiter9228bf72016-02-25 03:06:12 +000061 mock_prov = mock.Mock()
62 mock_admin_man = mock.Mock()
63 mock_iaa.return_value = True
64 mock_gcp.return_value = mock_prov
65 mock_man.return_value = mock_admin_man
66
67 test.BaseTestCase.get_tenant_network()
68
69 mock_man.assert_called_once_with(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010070 mock_prov.get_admin_creds.return_value.credentials)
Ryan Rossiter9228bf72016-02-25 03:06:12 +000071 mock_iaa.assert_called_once_with(
72 identity_version=mock_giv.return_value)
73 mock_gcp.assert_called_once_with()
74 mock_gtn.assert_called_once_with(
75 mock_prov, mock_admin_man.compute_networks_client,
76 self.fixed_network_name)
77
78 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
79 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
80 @mock.patch.object(fixed_network, 'get_tenant_network')
81 def test_get_tenant_network_with_alt_creds(self, mock_gtn, mock_gprov,
82 mock_gcm):
83 net_client = mock.Mock()
84 mock_prov = mock.Mock()
85 mock_gcm.return_value.compute_networks_client = net_client
86 mock_gprov.return_value = mock_prov
87
88 test.BaseTestCase.get_tenant_network(credentials_type='alt')
89
90 mock_gcm.assert_called_once_with(credential_type='alt')
91 mock_gprov.assert_called_once_with()
92 mock_gtn.assert_called_once_with(mock_prov, net_client,
93 self.fixed_network_name)
94
95 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
96 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
97 @mock.patch.object(fixed_network, 'get_tenant_network')
98 def test_get_tenant_network_with_role_creds(self, mock_gtn, mock_gprov,
99 mock_gcm):
100 net_client = mock.Mock()
101 mock_prov = mock.Mock()
102 mock_gcm.return_value.compute_networks_client = net_client
103 mock_gprov.return_value = mock_prov
104 creds = ['foo_type', 'role1']
105
106 test.BaseTestCase.get_tenant_network(credentials_type=creds)
107
108 mock_gcm.assert_called_once_with(roles=['role1'])
109 mock_gprov.assert_called_once_with()
110 mock_gtn.assert_called_once_with(mock_prov, net_client,
111 self.fixed_network_name)