Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion pyxform/validators/pyxform/parameters_generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ def parse(raw_parameters: str) -> PARAMETERS_TYPE:
)
k, v = param.split("=")[:2]
key = maybe_strip(k.lower())
params[key] = v if key in CASE_SENSITIVE_VALUES else maybe_strip(v.lower())
params[key] = (
maybe_strip(v) if key in CASE_SENSITIVE_VALUES else maybe_strip(v.lower())
)

return params

Expand Down
21 changes: 21 additions & 0 deletions tests/test_external_instances_for_selects.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,27 @@ def test_param_value_case_preserved(self):
],
)

def test_param_value_and_label_whitespace_trimmed_case_preserved(self):
"""Should trim outer spaces for value/label params while preserving case."""
md = """
| survey | | | | |
| | type | name | label | parameters |
| | select_one_from_file cities{ext} | city | City | value = VAL , label = lBl |
| | select_multiple_from_file suburbs{ext} | suburbs | Suburbs | value = VAL , label = lBl |
"""
for ext, xp_city, xp_subs in self.xp_test_args:
with self.subTest(msg=ext):
self.assertPyxformXform(
name="test",
md=md.format(ext=ext),
xml__xpath_match=[
xp_city.model_external_instance_and_bind(),
xp_subs.model_external_instance_and_bind(),
xp_city.body_itemset_nodeset_and_refs(value="VAL", label="lBl"),
xp_subs.body_itemset_nodeset_and_refs(value="VAL", label="lBl"),
],
)

def test_expected_error_message(self):
"""Should get helpful error when select_from_file is missing a file extension."""
md = """
Expand Down