UPLOAD_SETTINGS = ['menu_label',
'literal_column_headings',
+ 'trim',
]
REQUIRED_SETTINGS = []
BOOLEAN_SETTINGS = []
+BOOLEAN_CHOICE_SETTINGS = ['trim']
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
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
<%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'):
<tr>
<td class="label">
<label for="trim_upload_id">Trim Leading/Trailing Spaces:</label>
/>
</td>
</tr>
+ % endif
</%def>
<%def name="append_elements(form_elements)">
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
mock_boolean_settings = testing.make_mock_fixture(
checkset, 'boolean_settings')
+mock_boolean_choice = testing.make_mock_fixture(
+ checkset, 'boolean_choice')
+
# validate_literal_column_headings()
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.
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()