+++ /dev/null
-# Copyright (C) 2020 The Meme Factory, Inc. http://www.karlpinc.com/
-
-# This file is part of PGWUI_Server.
-#
-# This program is free software: you can redistribute it and/or
-# modify it under the terms of the GNU Affero General Public License
-# as published by the Free Software Foundation, either version 3 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/>.
-#
-
-# Karl O. Pinc <kop@karlpinc.com>
-
-'''Helper routines for checking a PGWUI component's settings
-'''
-
-from ast import literal_eval
-
-from . import exceptions
-
-
-def require_settings(component, required_settings, conf):
- errors = []
- for setting in required_settings:
- if setting not in conf:
- errors.append(exceptions.MissingSettingError(
- '{}.{}'.format(component, setting)))
- return errors
-
-
-def unknown_settings(component, settings, conf):
- errors = []
- for setting in conf:
- if setting not in settings:
- errors.append(exceptions.UnknownSettingKeyError(
- '{}.{}'.format(component, setting)))
- return errors
-
-
-def boolean_settings(component, booleans, conf):
- errors = []
- for setting in booleans:
- if setting in conf:
- try:
- val = literal_eval(conf[setting])
- except ValueError:
- val = None
- if (val is not True
- and val is not False):
- errors.append(exceptions.NotBooleanSettingError(
- '{}.{}'.format(component, setting), conf[setting]))
- return errors
+++ /dev/null
-# Copyright (C) 2018, 2019, 2020 The Meme Factory, Inc.
-# http://www.karlpinc.com/
-
-# This file is part of PGWUI_Server.
-#
-# This program is free software: you can redistribute it and/or
-# modify it under the terms of the GNU Affero General Public License
-# as published by the Free Software Foundation, either version 3 of
-# the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/>.
-#
-
-# Karl O. Pinc <kop@karlpinc.com>
-
-import pgwui_server.exceptions as ex
-import pgwui_server.checkset as checkset
-
-
-# require_settings()
-
-def test_require_settings_good():
- '''No errors when the required settings are in the config
- '''
- required = ['settinga', 'settingb']
- settings = {'settinga': 'a', 'settingb': 'b'}
-
- result = checkset.require_settings('testcomp', required, settings)
-
- assert result == []
-
-
-def test_require_settings_bad():
- '''Errors when the required settings are not in the config
- '''
- required = ['settinga', 'settingb']
- settings = {}
-
- result = checkset.require_settings('testcomp', required, settings)
-
- assert len(result) == len(required)
- for error in result:
- assert isinstance(error, ex.MissingSettingError)
-
-
-# unknown_settings()
-
-def test_unknown_settings_good():
- '''There are no errors when all settings are known
- '''
- settings = ['settinga', 'settingb']
- conf = {'settinga': 'a', 'settingb': 'b'}
-
- result = checkset.unknown_settings('testcomp', settings, conf)
-
- assert result == []
-
-
-def test_unknown_settings_bad():
- '''Errors when settings are not known
- '''
- conf = {'settinga': 'a', 'settingb': 'b'}
-
- result = checkset.unknown_settings('testcomp', [], conf)
-
- assert len(result) == len(conf)
- for error in result:
- assert isinstance(error, ex.UnknownSettingKeyError)
-
-
-# boolean_settings()
-
-def test_boolean_settings_good():
- '''No errors when boolean settings are boolean
- '''
- conf = {'settinga': 'a', 'settingb': 'True', 'settingc': 'False'}
- bools = ['settingc', 'settingb']
-
- result = checkset.boolean_settings('testcomp', bools, conf)
-
- assert result == []
-
-
-def test_boolean_settings_bad():
- '''Errors when boolean settings are not boolean
- '''
- conf = {'settinga': 'a', 'settingb': 'True', 'settingc': 'c'}
- bools = ['settinga', 'settingb']
-
- result = checkset.boolean_settings('testcomp', bools, conf)
-
- assert len(result) == 1
- for error in result:
- assert isinstance(error, ex.NotBooleanSettingError)
-
-
-def test_boolean_settings_missing():
- '''No errors when the boolean setting is missing from the config
- '''
- conf = {}
- bools = ['settinga']
-
- result = checkset.boolean_settings('testcomp', bools, conf)
-
- assert result == []