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:
bin.sun 2018-08-15 13:46:11 +08:00 committed by Neil Sun
parent 90b2cb2474
commit e2a2a2fd06
3 changed files with 46 additions and 1 deletions

View File

@ -30,3 +30,6 @@ server=localhost
port=25
default_from=zuul@example.com
default_to=you@example.com
[web]
static_cache_expiry=1200

View File

@ -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)

View File

@ -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: