blob: 011bc9bebca6fa0b08ce37b51b2dd6ca6cb3c95a [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
Andrea Frittolicad70e22017-08-16 13:19:04 +010020from tempest import config
Matthew Treinishb19c55d2017-07-17 12:38:35 -040021from tempest.lib.common import fixed_network
Ryan Rossiter9228bf72016-02-25 03:06:12 +000022from tempest import test
Matthew Treinishffad78a2016-04-16 14:39:52 -040023from tempest.tests import base
Ryan Rossiter9228bf72016-02-25 03:06:12 +000024from tempest.tests import fake_config
Ryan Rossiter9228bf72016-02-25 03:06:12 +000025
26
27class TestBaseTestCase(base.TestCase):
28 def setUp(self):
29 super(TestBaseTestCase, self).setUp()
30 self.useFixture(fake_config.ConfigFixture())
Andrea Frittolicad70e22017-08-16 13:19:04 +010031 self.patchobject(config, 'TempestConfigPrivate',
32 fake_config.FakePrivate)
Ryan Rossiter9228bf72016-02-25 03:06:12 +000033 self.fixed_network_name = 'fixed-net'
Andrea Frittoli5fdfc9b2017-08-17 12:06:04 +010034 cfg.CONF.set_default('fixed_network_name', self.fixed_network_name,
35 'compute')
36 cfg.CONF.set_default('neutron', True, 'service_available')
Ryan Rossiter9228bf72016-02-25 03:06:12 +000037
38 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
39 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
40 @mock.patch.object(fixed_network, 'get_tenant_network')
41 def test_get_tenant_network(self, mock_gtn, mock_gprov, mock_gcm):
42 net_client = mock.Mock()
43 mock_prov = mock.Mock()
44 mock_gcm.return_value.compute_networks_client = net_client
45 mock_gprov.return_value = mock_prov
46
47 test.BaseTestCase.get_tenant_network()
48
49 mock_gcm.assert_called_once_with(credential_type='primary')
50 mock_gprov.assert_called_once_with()
51 mock_gtn.assert_called_once_with(mock_prov, net_client,
52 self.fixed_network_name)
53
54 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
55 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
56 @mock.patch.object(fixed_network, 'get_tenant_network')
57 @mock.patch.object(test.BaseTestCase, 'get_identity_version')
58 @mock.patch.object(credentials, 'is_admin_available')
59 @mock.patch.object(clients, 'Manager')
60 def test_get_tenant_network_with_nova_net(self, mock_man, mock_iaa,
61 mock_giv, mock_gtn, mock_gcp,
62 mock_gcm):
Andrea Frittoli5fdfc9b2017-08-17 12:06:04 +010063 cfg.CONF.set_default('neutron', False, 'service_available')
Ryan Rossiter9228bf72016-02-25 03:06:12 +000064 mock_prov = mock.Mock()
65 mock_admin_man = mock.Mock()
66 mock_iaa.return_value = True
67 mock_gcp.return_value = mock_prov
68 mock_man.return_value = mock_admin_man
69
70 test.BaseTestCase.get_tenant_network()
71
72 mock_man.assert_called_once_with(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010073 mock_prov.get_admin_creds.return_value.credentials)
Ryan Rossiter9228bf72016-02-25 03:06:12 +000074 mock_iaa.assert_called_once_with(
75 identity_version=mock_giv.return_value)
76 mock_gcp.assert_called_once_with()
77 mock_gtn.assert_called_once_with(
78 mock_prov, mock_admin_man.compute_networks_client,
79 self.fixed_network_name)
80
81 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
82 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
83 @mock.patch.object(fixed_network, 'get_tenant_network')
84 def test_get_tenant_network_with_alt_creds(self, mock_gtn, mock_gprov,
85 mock_gcm):
86 net_client = mock.Mock()
87 mock_prov = mock.Mock()
88 mock_gcm.return_value.compute_networks_client = net_client
89 mock_gprov.return_value = mock_prov
90
91 test.BaseTestCase.get_tenant_network(credentials_type='alt')
92
93 mock_gcm.assert_called_once_with(credential_type='alt')
94 mock_gprov.assert_called_once_with()
95 mock_gtn.assert_called_once_with(mock_prov, net_client,
96 self.fixed_network_name)
97
98 @mock.patch.object(test.BaseTestCase, 'get_client_manager')
99 @mock.patch.object(test.BaseTestCase, '_get_credentials_provider')
100 @mock.patch.object(fixed_network, 'get_tenant_network')
101 def test_get_tenant_network_with_role_creds(self, mock_gtn, mock_gprov,
102 mock_gcm):
103 net_client = mock.Mock()
104 mock_prov = mock.Mock()
105 mock_gcm.return_value.compute_networks_client = net_client
106 mock_gprov.return_value = mock_prov
107 creds = ['foo_type', 'role1']
108
109 test.BaseTestCase.get_tenant_network(credentials_type=creds)
110
111 mock_gcm.assert_called_once_with(roles=['role1'])
112 mock_gprov.assert_called_once_with()
113 mock_gtn.assert_called_once_with(mock_prov, net_client,
114 self.fixed_network_name)