From 9e400c0f78cf3e0fe71c4e20a8e901f49c69f4e7 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Fri, 22 Jan 2021 17:58:42 -0600 Subject: [PATCH] Add a "trim" setting controlling default data value whitespace trimming --- src/pgwui_upload_core/check_settings.py | 6 +++++- src/pgwui_upload_core/templates/upload.mak | 3 +++ src/pgwui_upload_core/views/upload.py | 16 ++++++++++++++++ tests/test_check_settings.py | 12 ++++++++++-- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/pgwui_upload_core/check_settings.py b/src/pgwui_upload_core/check_settings.py index 542eb49..8c43836 100644 --- a/src/pgwui_upload_core/check_settings.py +++ b/src/pgwui_upload_core/check_settings.py @@ -25,9 +25,11 @@ from . import exceptions as upload_core_ex UPLOAD_SETTINGS = ['menu_label', 'literal_column_headings', + 'trim', ] REQUIRED_SETTINGS = [] BOOLEAN_SETTINGS = [] +BOOLEAN_CHOICE_SETTINGS = ['trim'] def validate_literal_column_headings(component, errors, settings): @@ -43,7 +45,7 @@ def validate_literal_column_headings(component, errors, settings): def check_settings( component, all_setngs, required_setngs, boolean_setngs, - component_config): + boolean_choice_setngs, component_config): '''Check that all pgwui_upload specific settings are good. This includes: checking for unknown settings @@ -58,6 +60,8 @@ def check_settings( component, required_setngs, component_config)) errors.extend(checkset.boolean_settings( component, boolean_setngs, component_config)) + errors.extend(checkset.boolean_choice( + component, boolean_choice_setngs, component_config)) validate_literal_column_headings(component, errors, component_config) return errors diff --git a/src/pgwui_upload_core/templates/upload.mak b/src/pgwui_upload_core/templates/upload.mak index 7d6c097..dbd5f00 100644 --- a/src/pgwui_upload_core/templates/upload.mak +++ b/src/pgwui_upload_core/templates/upload.mak @@ -42,6 +42,8 @@ <%inherit file="${auth_base_mak}" /> <%def name="trim_row(tab_index)"> + <% trim_setting = pgwui['upload_settings']['trim'] %> + % if (trim_setting == 'choice-yes' or trim_setting == 'choice-no'): @@ -55,6 +57,7 @@ /> + % endif <%def name="append_elements(form_elements)"> diff --git a/src/pgwui_upload_core/views/upload.py b/src/pgwui_upload_core/views/upload.py index ddd8622..e03de49 100644 --- a/src/pgwui_upload_core/views/upload.py +++ b/src/pgwui_upload_core/views/upload.py @@ -253,3 +253,19 @@ class BaseTableUploadHandler(TabularFileUploadHandler): Yes, lots. ''' raise NotImplementedError() + + +def set_upload_response(component, request, response): + '''Add to response per the upload component's settings + Adds: ask_about_literal_cols + ask_about_trim + upload_settings + ''' + settings = request.registry.settings + upload_settings = settings['pgwui'][component] + + quoter_setting = upload_settings.get('literal_column_headings') + response['ask_about_literal_cols'] = quoter_setting == 'ask' + + response.setdefault('pgwui', dict()) + response['pgwui']['upload_settings'] = upload_settings diff --git a/tests/test_check_settings.py b/tests/test_check_settings.py index a101d37..78898c7 100644 --- a/tests/test_check_settings.py +++ b/tests/test_check_settings.py @@ -42,6 +42,9 @@ mock_require_settings = testing.make_mock_fixture( mock_boolean_settings = testing.make_mock_fixture( checkset, 'boolean_settings') +mock_boolean_choice = testing.make_mock_fixture( + checkset, 'boolean_choice') + # validate_literal_column_headings() @@ -79,6 +82,7 @@ mock_validate_literal_column_headings = testing.make_mock_fixture( def test_check_settings(mock_unknown_settings, mock_require_settings, mock_boolean_settings, + mock_boolean_choice, mock_validate_literal_column_headings): '''The setting checking functions are called once, the check_settings() call returns all the errors from each mock. @@ -87,19 +91,23 @@ def test_check_settings(mock_unknown_settings, unknown_retval = ['unk err'] require_retval = ['req err'] boolean_retval = ['bool err'] + boolean_choice_retval = ['choice err'] mock_unknown_settings.return_value = unknown_retval mock_require_settings.return_value = require_retval mock_boolean_settings.return_value = boolean_retval + mock_boolean_choice.return_value = boolean_choice_retval - result = check_settings.check_settings(None, [], [], [], {}) + result = check_settings.check_settings(None, [], [], [], [], {}) mock_unknown_settings.assert_called_once mock_require_settings.assert_called_once mock_boolean_settings.assert_called_once + mock_boolean_choice.assert_called_once mock_validate_literal_column_headings.assert_called_once assert result.sort() == ([literal_err] + unknown_retval + require_retval - + boolean_retval).sort() + + boolean_retval + + boolean_choice_retval).sort() -- 2.34.1