From ce5e57a65dbf556a87824917f9d78a24b5557108 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Sun, 28 Jun 2020 15:46:43 -0500 Subject: [PATCH] Move parse_assignments() in code --- src/pgwui_server/__init__.py | 30 ++++++++--------- tests/test___init__.py | 64 ++++++++++++++++++------------------ 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/pgwui_server/__init__.py b/src/pgwui_server/__init__.py index 6708439..688b8a4 100644 --- a/src/pgwui_server/__init__.py +++ b/src/pgwui_server/__init__.py @@ -189,6 +189,21 @@ def validate_literal_column_headings(errors, settings): errors.append(BadLiteralColumnHeadingsError(value)) +def parse_assignments(lines): + '''Return a list of key/value tuples from the lines of a setting + ''' + result = [] + if isinstance(lines, str): + for line in lines.splitlines(): + if '=' in line: + key, val = line.split('=', 1) + result.append((key.rstrip(), val.lstrip())) + else: + for key, val in lines.items(): + result.append((key, val)) + return result + + def validate_settings(errors, settings, components): '''Be sure all settings validate ''' @@ -224,21 +239,6 @@ def exit_on_invalid_settings(settings, components): exit_reporting_errors(errors) -def parse_assignments(lines): - '''Return a list of key/value tuples from the lines of a setting - ''' - result = [] - if isinstance(lines, str): - for line in lines.splitlines(): - if '=' in line: - key, val = line.split('=', 1) - result.append((key.rstrip(), val.lstrip())) - else: - for key, val in lines.items(): - result.append((key, val)) - return result - - def add_routes(config, settings): '''Add routes found in pgwui.routes setting ''' diff --git a/tests/test___init__.py b/tests/test___init__.py index 8eb3741..8c93cd2 100644 --- a/tests/test___init__.py +++ b/tests/test___init__.py @@ -307,6 +307,38 @@ mock_validate_literal_column_headings = testing.make_mock_fixture( pgwui_server_init, 'validate_literal_column_headings') +# parse_assignments() + +def test_parse_assignments_str(): + '''Returns key/value string tuples and ignores lines without an "="''' + lines = ('key1 = value1\n' # whitespace around = is ignored + '\n' + 'ignored\n' + 'key2=value2\n' # missing whitespace is fine + 'key3= value3=withequals\n' + ) + result = pgwui_server_init.parse_assignments(lines) + assert set(result) == set([('key1', 'value1'), + ('key2', 'value2'), + ('key3', 'value3=withequals')]) + + +def test_parse_assignments_dict(): + '''Returns key value tuples. + ''' + lines = {'key1': 'value1', + 'key2': 'value2', + } + result = pgwui_server_init.parse_assignments(lines) + assert set(result) == set([('key1', 'value1'), + ('key2', 'value2'), + ]) + + +mock_parse_assignments = testing.make_mock_fixture( + pgwui_server_init, 'parse_assignments') + + # validate_settings() def test_validate_settings(mock_abort_on_bad_setting, @@ -424,38 +456,6 @@ mock_exit_on_invalid_settings = testing.make_mock_fixture( pgwui_server_init, 'exit_on_invalid_settings') -# parse_assignments() - -def test_parse_assignments_str(): - '''Returns key/value string tuples and ignores lines without an "="''' - lines = ('key1 = value1\n' # whitespace around = is ignored - '\n' - 'ignored\n' - 'key2=value2\n' # missing whitespace is fine - 'key3= value3=withequals\n' - ) - result = pgwui_server_init.parse_assignments(lines) - assert set(result) == set([('key1', 'value1'), - ('key2', 'value2'), - ('key3', 'value3=withequals')]) - - -def test_parse_assignments_dict(): - '''Returns key value tuples. - ''' - lines = {'key1': 'value1', - 'key2': 'value2', - } - result = pgwui_server_init.parse_assignments(lines) - assert set(result) == set([('key1', 'value1'), - ('key2', 'value2'), - ]) - - -mock_parse_assignments = testing.make_mock_fixture( - pgwui_server_init, 'parse_assignments') - - # autoconfigurable_components() def test_autoconfiguable_components_no_autoconfig(): -- 2.34.1