chore(chart-data): add post processing error message to response (#23734)

This commit is contained in:
Ville Brofeldt 2023-04-19 18:49:33 +03:00 committed by GitHub
parent 44557f5a23
commit 306fb22021
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View File

@ -237,7 +237,7 @@ class QueryContextProcessor:
try:
df = query_object.exec_post_processing(df)
except InvalidPostProcessingError as ex:
raise QueryObjectValidationError from ex
raise QueryObjectValidationError(ex.message) from ex
result.df = df
result.query = query

View File

@ -481,6 +481,33 @@ class TestPostChartDataApi(BaseTestChartDataApi):
self.assertIn("sum__num__yhat_lower", row)
self.assertEqual(result["rowcount"], 47)
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_chart_data_invalid_post_processing(self):
"""
Chart data API: Ensure incorrect post processing returns correct response
"""
query_context = self.query_context_payload
query = query_context["queries"][0]
query["columns"] = ["name", "gender"]
query["post_processing"] = [
{
"operation": "pivot",
"options": {
"drop_missing_columns": False,
"columns": ["gender"],
"index": ["name"],
"aggregates": {},
},
},
]
rv = self.post_assert_metric(CHART_DATA_URI, query_context, "data")
assert rv.status_code == 400
data = json.loads(rv.data.decode("utf-8"))
assert (
data["message"]
== "Error: Pivot operation must include at least one aggregate"
)
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_with_query_result_type_and_non_existent_filter__filter_omitted(self):
self.query_context_payload["queries"][0]["filters"] = [