Allow trailing spaces in simple filter values (#7617)

This commit is contained in:
Erik Ritter 2019-05-31 17:06:41 -07:00 committed by Beto Dealmeida
parent 15d0361148
commit 722043c672
2 changed files with 9 additions and 2 deletions

View File

@ -220,7 +220,7 @@ class BaseDatasource(AuditMixinNullable, ImportMixin):
def handle_single_value(v):
# backward compatibility with previous <select> components
if isinstance(v, str):
v = v.strip('\t\n \'"')
v = v.strip('\t\n\'"')
if target_column_is_numeric:
# For backwards compatibility and edge cases
# where a column data type might have changed

View File

@ -234,12 +234,19 @@ class DruidFuncTestCase(unittest.TestCase):
self.assertIsNone(res)
def test_get_filters_extracts_values_in_quotes(self):
filtr = {'col': 'A', 'op': 'in', 'val': [' "a" ']}
filtr = {'col': 'A', 'op': 'in', 'val': ['"a"']}
col = DruidColumn(column_name='A')
column_dict = {'A': col}
res = DruidDatasource.get_filters([filtr], [], column_dict)
self.assertEqual('a', res.filter['filter']['value'])
def test_get_filters_keeps_trailing_spaces(self):
filtr = {'col': 'A', 'op': 'in', 'val': ['a ']}
col = DruidColumn(column_name='A')
column_dict = {'A': col}
res = DruidDatasource.get_filters([filtr], [], column_dict)
self.assertEqual('a ', res.filter['filter']['value'])
def test_get_filters_converts_strings_to_num(self):
filtr = {'col': 'A', 'op': 'in', 'val': ['6']}
col = DruidColumn(column_name='A')