From b81cccdb2f4709a4b0da6185aadbf7edbc0e963c Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sun, 28 Jun 2020 16:30:56 -0500 Subject: [PATCH] Parse plugin config values --- src/pgwui_server/__init__.py | 8 ++++++++ tests/test___init__.py | 24 +++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/pgwui_server/__init__.py b/src/pgwui_server/__init__.py index 9884e60..81b6800 100644 --- a/src/pgwui_server/__init__.py +++ b/src/pgwui_server/__init__.py @@ -204,12 +204,20 @@ def parse_assignments(lines): return result +def parse_component_settings(component_keys, key, settings): + '''Parse plugin component setting assigments into a dict + ''' + if key in component_keys: + settings[key] = dict(parse_assignments(settings[key])) + + def validate_settings(errors, settings, components): '''Be sure all settings validate ''' component_keys = ['pgwui.{}'.format(component) for component in components] for key in settings.keys(): + parse_component_settings(component_keys, key, settings) abort_on_bad_setting(errors, component_keys, key) validate_setting_values(errors, settings) validate_hmac(errors, settings) diff --git a/tests/test___init__.py b/tests/test___init__.py index 8c93cd2..a8b079a 100644 --- a/tests/test___init__.py +++ b/tests/test___init__.py @@ -339,9 +339,30 @@ mock_parse_assignments = testing.make_mock_fixture( pgwui_server_init, 'parse_assignments') +# parse_component_settings() + +def test_parse_component_settings(mock_parse_assignments): + '''Plugin component settings are properly parsed + ''' + expected_server_settings = {'a': '1', 'b': '2'} + component = 'pgwui.pgwui_server' + settings = {component: 'ignored'} + + mock_parse_assignments.return_value = [('a', '1'), ('b', '2')] + pgwui_server_init.parse_component_settings( + [component], component, settings) + + assert settings[component] == expected_server_settings + + +mock_parse_component_settings = testing.make_mock_fixture( + pgwui_server_init, 'parse_component_settings') + + # validate_settings() -def test_validate_settings(mock_abort_on_bad_setting, +def test_validate_settings(mock_parse_component_settings, + mock_abort_on_bad_setting, mock_validate_setting_values, mock_validate_hmac): '''Calls abort_on_bad_setting() for each key in setting, @@ -357,6 +378,7 @@ def test_validate_settings(mock_abort_on_bad_setting, assert mock_validate_setting_values.called assert mock_validate_hmac.called + assert mock_abort_on_bad_setting.call_count == len(settings) assert mock_abort_on_bad_setting.call_args[0][1] == \ ['pgwui.{}'.format(components[0])] -- 2.34.1