[payload] Fixing regression introducted in ##4396
This commit is contained in:
parent
83524f97d7
commit
7440d34936
|
|
@ -151,9 +151,6 @@ class BaseViz(object):
|
|||
# If the datetime format is unix, the parse will use the corresponding
|
||||
# parsing logic.
|
||||
if df is None or df.empty:
|
||||
self.status = utils.QueryStatus.FAILED
|
||||
if not self.error_message:
|
||||
self.error_message = 'No data.'
|
||||
return pd.DataFrame()
|
||||
else:
|
||||
if DTTM_ALIAS in df.columns:
|
||||
|
|
@ -290,10 +287,11 @@ class BaseViz(object):
|
|||
payload = self.get_df_payload(query_obj)
|
||||
|
||||
df = payload.get('df')
|
||||
if df is not None and len(df.index) == 0:
|
||||
raise Exception('No data')
|
||||
if self.status != utils.QueryStatus.FAILED:
|
||||
payload['data'] = self.get_data(df)
|
||||
if df is None or df.empty:
|
||||
payload['error'] = 'No data'
|
||||
else:
|
||||
payload['data'] = self.get_data(df)
|
||||
if 'df' in payload:
|
||||
del payload['df']
|
||||
return payload
|
||||
|
|
@ -327,8 +325,9 @@ class BaseViz(object):
|
|||
if query_obj and not is_loaded:
|
||||
try:
|
||||
df = self.get_df(query_obj)
|
||||
stats_logger.incr('loaded_from_source')
|
||||
is_loaded = True
|
||||
if self.status != utils.QueryStatus.FAILED:
|
||||
stats_logger.incr('loaded_from_source')
|
||||
is_loaded = True
|
||||
except Exception as e:
|
||||
logging.exception(e)
|
||||
if not self.error_message:
|
||||
|
|
@ -612,7 +611,7 @@ class MarkupViz(BaseViz):
|
|||
return None
|
||||
|
||||
def get_df(self, query_obj=None):
|
||||
return None
|
||||
return pd.DataFrame()
|
||||
|
||||
def get_data(self, df):
|
||||
markup_type = self.form_data.get('markup_type')
|
||||
|
|
|
|||
|
|
@ -909,6 +909,34 @@ class CoreTests(SupersetTestCase):
|
|||
resp = self.get_resp(url)
|
||||
assert '"CA"' in resp
|
||||
|
||||
def test_slice_payload_no_data(self):
|
||||
self.login(username='admin')
|
||||
slc = self.get_slice('Girls', db.session)
|
||||
|
||||
url = slc.get_explore_url(
|
||||
base_url='/superset/explore_json',
|
||||
overrides={
|
||||
'filters': [{'col': 'state', 'op': 'in', 'val': ['N/A']}],
|
||||
},
|
||||
)
|
||||
|
||||
data = self.get_json_resp(url)
|
||||
self.assertEqual(data['status'], utils.QueryStatus.SUCCESS)
|
||||
assert 'No data' in data['error']
|
||||
|
||||
def test_slice_payload_invalid_query(self):
|
||||
self.login(username='admin')
|
||||
slc = self.get_slice('Girls', db.session)
|
||||
|
||||
url = slc.get_explore_url(
|
||||
base_url='/superset/explore_json',
|
||||
overrides={'groupby': ['N/A']},
|
||||
)
|
||||
|
||||
data = self.get_json_resp(url)
|
||||
self.assertEqual(data['status'], utils.QueryStatus.FAILED)
|
||||
assert 'KeyError' in data['stacktrace']
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import unittest
|
|||
from mock import Mock, patch
|
||||
import pandas as pd
|
||||
|
||||
import superset.utils as utils
|
||||
from superset.utils import DTTM_ALIAS
|
||||
import superset.viz as viz
|
||||
|
||||
|
|
@ -53,8 +52,6 @@ class BaseVizTestCase(unittest.TestCase):
|
|||
result = test_viz.get_df(query_obj)
|
||||
self.assertEqual(type(result), pd.DataFrame)
|
||||
self.assertTrue(result.empty)
|
||||
self.assertEqual(test_viz.error_message, 'No data.')
|
||||
self.assertEqual(test_viz.status, utils.QueryStatus.FAILED)
|
||||
|
||||
def test_get_df_handles_dttm_col(self):
|
||||
datasource = Mock()
|
||||
|
|
|
|||
Loading…
Reference in New Issue