Add type check for zuul conf
Some options of zuul web should be initialized as int format, and it may cause TypeError when accessing zuul web dashboard. Change-Id: I4923d3047516c39b7e1005e189924fb4dd6fd1df
This commit is contained in:
parent
90b2cb2474
commit
e2a2a2fd06
|
@ -30,3 +30,6 @@ server=localhost
|
|||
port=25
|
||||
default_from=zuul@example.com
|
||||
default_to=you@example.com
|
||||
|
||||
[web]
|
||||
static_cache_expiry=1200
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
# Copyright 2018 EasyStack, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
import os
|
||||
|
||||
import configparser
|
||||
|
||||
from tests.base import BaseTestCase
|
||||
from tests.base import FIXTURE_DIR
|
||||
from zuul.lib.config import get_default
|
||||
|
||||
|
||||
class TestDefaultConfigValue(BaseTestCase):
|
||||
config_file = 'zuul.conf'
|
||||
|
||||
def setUp(self):
|
||||
super(TestDefaultConfigValue, self).setUp()
|
||||
self.config = configparser.ConfigParser()
|
||||
self.config.read(os.path.join(FIXTURE_DIR, self.config_file))
|
||||
|
||||
def test_default_config_value(self):
|
||||
default_value = get_default(self.config,
|
||||
'web',
|
||||
'static_cache_expiry',
|
||||
default=3600)
|
||||
self.assertEqual(1200, default_value)
|
|
@ -15,7 +15,12 @@ import os
|
|||
|
||||
def get_default(config, section, option, default=None, expand_user=False):
|
||||
if config.has_option(section, option):
|
||||
value = config.get(section, option)
|
||||
# Need to be ensured that we get suitable
|
||||
# type from config file by default value
|
||||
if isinstance(default, int):
|
||||
value = config.getint(section, option)
|
||||
else:
|
||||
value = config.get(section, option)
|
||||
else:
|
||||
value = default
|
||||
if expand_user and value:
|
||||
|
|
Loading…
Reference in New Issue