| # Copyright 2016 IBM Corp. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| |
| from unittest import mock |
| |
| from oslo_config import cfg |
| |
| from tempest import clients |
| from tempest.common import credentials_factory as credentials |
| from tempest import config |
| from tempest.lib.common import fixed_network |
| from tempest import test |
| from tempest.tests import base |
| from tempest.tests import fake_config |
| |
| |
| class TestBaseTestCase(base.TestCase): |
| def setUp(self): |
| super(TestBaseTestCase, self).setUp() |
| self.useFixture(fake_config.ConfigFixture()) |
| self.patchobject(config, 'TempestConfigPrivate', |
| fake_config.FakePrivate) |
| self.fixed_network_name = 'fixed-net' |
| cfg.CONF.set_default('fixed_network_name', self.fixed_network_name, |
| 'compute') |
| cfg.CONF.set_default('neutron', True, 'service_available') |
| |
| @mock.patch.object(test.BaseTestCase, 'get_client_manager') |
| @mock.patch.object(test.BaseTestCase, '_get_credentials_provider') |
| @mock.patch.object(fixed_network, 'get_tenant_network') |
| def test_get_tenant_network(self, mock_gtn, mock_gprov, mock_gcm): |
| net_client = mock.Mock() |
| mock_prov = mock.Mock() |
| mock_gcm.return_value.networks_client = net_client |
| mock_gprov.return_value = mock_prov |
| |
| test.BaseTestCase.get_tenant_network() |
| |
| mock_gcm.assert_called_once_with(credential_type='primary') |
| mock_gprov.assert_called_once_with() |
| mock_gtn.assert_called_once_with(mock_prov, net_client, |
| self.fixed_network_name) |
| |
| @mock.patch.object(test.BaseTestCase, 'get_client_manager') |
| @mock.patch.object(test.BaseTestCase, '_get_credentials_provider') |
| @mock.patch.object(fixed_network, 'get_tenant_network') |
| @mock.patch.object(test.BaseTestCase, 'get_identity_version') |
| @mock.patch.object(credentials, 'is_admin_available') |
| @mock.patch.object(clients, 'Manager') |
| def test_get_tenant_network_with_nova_net(self, mock_man, mock_iaa, |
| mock_giv, mock_gtn, mock_gcp, |
| mock_gcm): |
| cfg.CONF.set_default('neutron', False, 'service_available') |
| mock_prov = mock.Mock() |
| mock_admin_man = mock.Mock() |
| mock_iaa.return_value = True |
| mock_gcp.return_value = mock_prov |
| mock_man.return_value = mock_admin_man |
| |
| test.BaseTestCase.get_tenant_network() |
| |
| mock_man.assert_called_once_with( |
| mock_prov.get_admin_creds.return_value.credentials) |
| mock_iaa.assert_called_once_with( |
| identity_version=mock_giv.return_value) |
| mock_gcp.assert_called_once_with() |
| mock_gtn.assert_called_once_with( |
| mock_prov, mock_admin_man.compute_networks_client, |
| self.fixed_network_name) |
| |
| @mock.patch.object(test.BaseTestCase, 'get_client_manager') |
| @mock.patch.object(test.BaseTestCase, '_get_credentials_provider') |
| @mock.patch.object(fixed_network, 'get_tenant_network') |
| def test_get_tenant_network_with_alt_creds(self, mock_gtn, mock_gprov, |
| mock_gcm): |
| net_client = mock.Mock() |
| mock_prov = mock.Mock() |
| mock_gcm.return_value.networks_client = net_client |
| mock_gprov.return_value = mock_prov |
| |
| test.BaseTestCase.get_tenant_network(credentials_type='alt') |
| |
| mock_gcm.assert_called_once_with(credential_type='alt') |
| mock_gprov.assert_called_once_with() |
| mock_gtn.assert_called_once_with(mock_prov, net_client, |
| self.fixed_network_name) |
| |
| @mock.patch.object(test.BaseTestCase, 'get_client_manager') |
| @mock.patch.object(test.BaseTestCase, '_get_credentials_provider') |
| @mock.patch.object(fixed_network, 'get_tenant_network') |
| def test_get_tenant_network_with_role_creds(self, mock_gtn, mock_gprov, |
| mock_gcm): |
| net_client = mock.Mock() |
| mock_prov = mock.Mock() |
| mock_gcm.return_value.networks_client = net_client |
| mock_gprov.return_value = mock_prov |
| creds = ['foo_type', 'role1'] |
| |
| test.BaseTestCase.get_tenant_network(credentials_type=creds) |
| |
| mock_gcm.assert_called_once_with(roles=['role1'], scope='project') |
| mock_gprov.assert_called_once_with() |
| mock_gtn.assert_called_once_with(mock_prov, net_client, |
| self.fixed_network_name) |