Parse plugin config values
authorKarl O. Pinc <kop@karlpinc.com>
Sun, 28 Jun 2020 21:30:56 +0000 (16:30 -0500)
committerKarl O. Pinc <kop@karlpinc.com>
Sun, 28 Jun 2020 21:41:36 +0000 (16:41 -0500)
src/pgwui_server/__init__.py
tests/test___init__.py

index 9884e60f35b95b0c903ea7af00ce9d68ba72b58b..81b680060949b6329cf69bdac28c480dda63f1b5 100644 (file)
@@ -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)
index 8c93cd2e5104c45fa631ce88c5d23a58dbadce3e..a8b079a66acc7fc2a70b65f27f78c4a70d2d24c1 100644 (file)
@@ -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])]