
The code should be rewritten anyway (see https://storyboard.openstack.org/#!/story/2002787) and in general the detection of the dashboard location should be more roboust, but the code should not raise an exception. and horizon settings are relevant only for the (few) Horizon Tempest tests, but the system can otherwise work. Change-Id: I62607ce4de65062a0c37bdd23220edf9ea7e6818 Story: 2003024 Task: 23048
63 lines
2.7 KiB
Python
63 lines
2.7 KiB
Python
# Copyright 2018 Red Hat, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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 ssl import CertificateError
|
|
|
|
from fixtures import MonkeyPatch
|
|
import mock
|
|
|
|
from config_tempest.services import horizon
|
|
from config_tempest.tests.base import BaseConfigTempestTest
|
|
|
|
|
|
class TestConfigTempest(BaseConfigTempestTest):
|
|
|
|
def setUp(self):
|
|
super(TestConfigTempest, self).setUp()
|
|
self.conf = self._get_conf("v2.0", "v3")
|
|
|
|
def test_configure_horizon_ipv4(self):
|
|
mock_function = mock.Mock(return_value=True)
|
|
self.useFixture(MonkeyPatch('six.moves.urllib.request.urlopen',
|
|
mock_function))
|
|
horizon.configure_horizon(self.conf)
|
|
self.assertEqual(self.conf.get('service_available', 'horizon'), "True")
|
|
self.assertEqual(self.conf.get('dashboard', 'dashboard_url'),
|
|
"http://172.16.52.151/dashboard/")
|
|
self.assertEqual(self.conf.get('dashboard', 'login_url'),
|
|
"http://172.16.52.151/dashboard/auth/login/")
|
|
|
|
def test_configure_horizon_ipv6(self):
|
|
mock_function = mock.Mock(return_value=True)
|
|
self.useFixture(MonkeyPatch('six.moves.urllib.request.urlopen',
|
|
mock_function))
|
|
self.conf.set('identity', 'uri', 'http://[::1]:5000/v3', priority=True)
|
|
horizon.configure_horizon(self.conf)
|
|
self.assertEqual(self.conf.get('service_available', 'horizon'), "True")
|
|
self.assertEqual(self.conf.get('dashboard', 'dashboard_url'),
|
|
"http://[::1]/dashboard/")
|
|
self.assertEqual(self.conf.get('dashboard', 'login_url'),
|
|
"http://[::1]/dashboard/auth/login/")
|
|
|
|
def test_configure_horizon_certificate_error(self):
|
|
mock_function = mock.Mock(return_value=True)
|
|
mock_function.side_effect = CertificateError
|
|
self.useFixture(MonkeyPatch('six.moves.urllib.request.urlopen',
|
|
mock_function))
|
|
horizon.configure_horizon(self.conf)
|
|
self.assertEqual(self.conf.get('service_available', 'horizon'),
|
|
"False")
|
|
self.assertFalse(self.conf.has_section('dashboard'))
|