[sqla] Adding check for invalid filter columns (#7888)

This commit is contained in:
John Bodley
2019-07-18 08:51:41 -07:00
committed by GitHub
parent 174a48ab55
commit 2b3e7fe4de
2 changed files with 83 additions and 38 deletions

View File

@@ -272,3 +272,45 @@ class SqlaTableModelTestCase(SupersetTestCase):
self.assertIn("--COMMENT", sql)
app.config["SQL_QUERY_MUTATOR"] = None
def test_query_with_non_existent_metrics(self):
tbl = self.get_table_by_name("birth_names")
query_obj = dict(
groupby=[],
metrics=["invalid"],
filter=[],
is_timeseries=False,
columns=["name"],
granularity=None,
from_dttm=None,
to_dttm=None,
is_prequery=False,
extras={},
)
with self.assertRaises(Exception) as context:
tbl.get_query_str(query_obj)
self.assertTrue("Metric 'invalid' does not exist", context.exception)
def test_query_with_non_existent_filter_columns(self):
tbl = self.get_table_by_name("birth_names")
query_obj = dict(
groupby=[],
metrics=["count"],
filter=[{"col": "invalid", "op": "==", "val": "male"}],
is_timeseries=False,
columns=["name"],
granularity=None,
from_dttm=None,
to_dttm=None,
is_prequery=False,
extras={},
)
with self.assertRaises(Exception) as context:
tbl.get_query_str(query_obj)
self.assertTrue("Column 'invalid' does not exist", context.exception)