Skip to content

Commit f4dd054

Browse files
committed
add multi select test case
1 parent 7fc7323 commit f4dd054

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

tests/test_field_filtering.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,22 @@ def test_multi_select_ogr(layer_field_filter: QgsVectorLayer):
121121
assert f.sql_expression == f'"attr_string" IS {SQL_PLACEHOLDER_VALUE}'
122122

123123

124+
def test_multi_select_with_allow_multi_ogr(layer_field_filter: QgsVectorLayer):
125+
"""Test MULTI_SELECT SQL expression when the field has AllowMulti enabled."""
126+
data = FieldFilter(layer_field_filter, "attr_string", FieldFilterType.MULTI_SELECT, "Multi").to_dict()
127+
data["field_has_multi_selection"] = True
128+
data["sql_expression"] = ""
129+
f = FieldFilter.from_dict(data)
130+
131+
assert f.field_has_multi_selection is True
132+
expected = (
133+
f"((',' || TRIM(\"attr_string\", '{{}}') || ',' ) LIKE '%,' || {SQL_PLACEHOLDER_VALUE} || ',%')"
134+
"OR"
135+
f"((',' || TRIM(\"attr_string\", '{{}}') || ',' ) LIKE '%,\"' || {SQL_PLACEHOLDER_VALUE} || '\",%')"
136+
)
137+
assert f.sql_expression == expected
138+
139+
124140
# -----------------------------------------------------------------------------
125141
# Helper functions
126142
# -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)