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 }], } expected = { 'adhoc_filters': [ { 'clause': 'WHERE', 'expressionType': 'SQL', 'sqlExpression': 'a = 1', }, ], } convert_legacy_filters_into_adhoc(form_data) self.assertEquals(form_data, expected)
def upgrade(): bind = op.get_bind() session = db.Session(bind=bind) for slc in session.query(Slice).all(): try: params = json.loads(slc.params) utils.convert_legacy_filters_into_adhoc(params) slc.params = json.dumps(params, sort_keys=True) except Exception: pass session.commit() session.close()
def test_convert_legacy_filters_into_adhoc_having(self): form_data = { 'having': 'COUNT(1) = 1', } expected = { 'adhoc_filters': [ { 'clause': 'HAVING', 'expressionType': 'SQL', 'sqlExpression': 'COUNT(1) = 1', }, ], } convert_legacy_filters_into_adhoc(form_data) self.assertEquals(form_data, expected)
def test_convert_legacy_filters_into_adhoc_where(self): form_data = { '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)
def test_convert_legacy_filters_into_adhoc_existing(self): form_data = { 'adhoc_filters': [], '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': []} convert_legacy_filters_into_adhoc(form_data) self.assertEquals(form_data, expected)
def test_convert_legacy_filters_into_adhoc_having_filters(self): form_data = { 'having_filters': [{ 'col': 'COUNT(1)', 'op': '==', 'val': 1 }], } expected = { 'adhoc_filters': [ { 'clause': 'HAVING', 'comparator': 1, 'expressionType': 'SIMPLE', 'operator': '==', 'subject': 'COUNT(1)', }, ], } convert_legacy_filters_into_adhoc(form_data) self.assertEquals(form_data, expected)
def test_convert_legacy_filters_into_adhoc_filters(self): form_data = { 'filters': [{ 'col': 'a', 'op': 'in', 'val': 'someval' }], } expected = { 'adhoc_filters': [ { 'clause': 'WHERE', 'comparator': 'someval', 'expressionType': 'SIMPLE', 'operator': 'in', 'subject': 'a', }, ], } convert_legacy_filters_into_adhoc(form_data) self.assertEquals(form_data, expected)