You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2018/08/10 17:22:09 UTC
[incubator-superset] branch master updated: [ad-hoc filters] Fixing
legacy conversion (#5589)
This is an automated email from the ASF dual-hosted git repository.
johnbodley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push:
new d1ef81f [ad-hoc filters] Fixing legacy conversion (#5589)
d1ef81f is described below
commit d1ef81f1027e1712a222b95088a88af21b941e53
Author: John Bodley <45...@users.noreply.github.com>
AuthorDate: Fri Aug 10 10:22:06 2018 -0700
[ad-hoc filters] Fixing legacy conversion (#5589)
---
superset/utils.py | 2 +-
tests/utils_tests.py | 37 ++++++++++++++++++++++++++++++++++---
2 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/superset/utils.py b/superset/utils.py
index d40e657..81fb4a1 100644
--- a/superset/utils.py
+++ b/superset/utils.py
@@ -949,7 +949,7 @@ def get_since_until(form_data):
def convert_legacy_filters_into_adhoc(fd):
mapping = {'having': 'having_filters', 'where': 'filters'}
- if 'adhoc_filters' not in fd:
+ if not fd.get('adhoc_filters'):
fd['adhoc_filters'] = []
for clause, filters in mapping.items():
diff --git a/tests/utils_tests.py b/tests/utils_tests.py
index e7b70f6..eb164b8 100644
--- a/tests/utils_tests.py
+++ b/tests/utils_tests.py
@@ -702,14 +702,45 @@ class UtilsTestCase(unittest.TestCase):
self.assertEquals(form_data, expected)
@patch('superset.utils.to_adhoc', mock_to_adhoc)
- def test_convert_legacy_filters_into_adhoc_existing(self):
+ def test_convert_legacy_filters_into_adhoc_present_and_empty(self):
form_data = {
'adhoc_filters': [],
+ 'where': 'a = 1',
+ }
+ expected = {
+ 'adhoc_filters': [
+ {
+ 'clause': 'WHERE',
+ 'expressionType': 'SQL',
+ 'sqlExpression': 'a = 1',
+ },
+ ],
+ }
+ convert_legacy_filters_into_adhoc(form_data)
+ self.assertEquals(form_data, expected)
+
+ @patch('superset.utils.to_adhoc', mock_to_adhoc)
+ def test_convert_legacy_filters_into_adhoc_present_and_nonempty(self):
+ form_data = {
+ 'adhoc_filters': [
+ {
+ 'clause': 'WHERE',
+ 'expressionType': 'SQL',
+ 'sqlExpression': 'a = 1',
+ },
+ ],
'filters': [{'col': 'a', 'op': 'in', 'val': 'someval'}],
'having': 'COUNT(1) = 1',
'having_filters': [{'col': 'COUNT(1)', 'op': '==', 'val': 1}],
- 'where': 'a = 1',
}
- expected = {'adhoc_filters': []}
+ expected = {
+ 'adhoc_filters': [
+ {
+ 'clause': 'WHERE',
+ 'expressionType': 'SQL',
+ 'sqlExpression': 'a = 1',
+ },
+ ],
+ }
convert_legacy_filters_into_adhoc(form_data)
self.assertEquals(form_data, expected)