add unit test

This commit is contained in:
Grace Guo
2018-03-02 13:48:55 -08:00
parent bd9ecbe9e7
commit 0f350adaf4
3 changed files with 26 additions and 7 deletions

View File

@@ -835,6 +835,13 @@ def merge_extra_filters(form_data):
del form_data['extra_filters']
def merge_request_params(form_data, params):
for key, value in params.items():
if key == 'form_data':
continue
form_data[key] = value
def get_update_perms_flag():
val = os.environ.get('SUPERSET_UPDATE_PERMS')
return val.lower() not in ('0', 'false', 'no') if val else True

View File

@@ -43,7 +43,9 @@ from superset.legacy import cast_form_data
import superset.models.core as models
from superset.models.sql_lab import Query
from superset.sql_parse import SupersetQuery
from superset.utils import has_access, merge_extra_filters, QueryStatus
from superset.utils import (
has_access, merge_extra_filters, merge_request_params, QueryStatus,
)
from .base import (
api, BaseSupersetView, CsvResponse, DeleteMixin,
generate_download_headers, get_error_msg, get_user_roles,
@@ -1257,11 +1259,7 @@ class Superset(BaseSupersetView):
# merge request url params
if request.method == 'GET':
url_params = request.args
for key, value in url_params.items():
if key == 'form_data':
continue
form_data[key] = value
merge_request_params(form_data, request.args)
# handle save or overwrite
action = request.args.get('action')

View File

@@ -14,7 +14,8 @@ import numpy
from superset.utils import (
base_json_conv, datetime_f, json_int_dttm_ser, json_iso_dttm_ser,
JSONEncodedDict, memoized, merge_extra_filters, parse_human_timedelta,
JSONEncodedDict, memoized, merge_extra_filters, merge_request_params,
parse_human_timedelta,
SupersetException, validate_json, zlib_compress, zlib_decompress_to_string,
)
@@ -216,6 +217,19 @@ class UtilsTestCase(unittest.TestCase):
merge_extra_filters(form_data)
self.assertEquals(form_data, expected)
def test_merge_request_params(self):
form_data = {
'since': '2000',
'until': 'now',
}
url_params = {
'form_data': form_data,
'dashboard_ids': '(1,2,3,4,5)',
}
merge_request_params(form_data, url_params)
self.assertIn('dashboard_ids', form_data.keys())
self.assertNotIn('form_data', form_data.keys())
def test_datetime_f(self):
self.assertEquals(
datetime_f(datetime(1990, 9, 21, 19, 11, 19, 626096)),