Skip to content

Commit

Permalink
lint
Browse files Browse the repository at this point in the history
  • Loading branch information
villebro committed Sep 13, 2022
1 parent d598bdc commit 978519f
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 14 deletions.
7 changes: 4 additions & 3 deletions superset/utils/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1946,8 +1946,9 @@ def remove_extra_adhoc_filters(form_data: Dict[str, Any]) -> None:
Remove filters from slice data that originate from a filter box or native filter
"""
adhoc_filters = {
key: value
for key, value in form_data.items() if ADHOC_FILTERS_REGEX.match(key)
key: value for key, value in form_data.items() if ADHOC_FILTERS_REGEX.match(key)
}
for key, value in adhoc_filters.items():
form_data[key] = [filter_ for filter_ in value or [] if not filter_.get("isExtra")]
form_data[key] = [
filter_ for filter_ in value or [] if not filter_.get("isExtra")
]
4 changes: 2 additions & 2 deletions superset/views/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -986,9 +986,9 @@ def filter( # pylint: disable=no-self-use
)
return json_success(payload)

@staticmethod
def save_or_overwrite_slice(
# pylint: disable=too-many-arguments,too-many-locals
self,
slc: Optional[Slice],
slice_add_perm: bool,
slice_overwrite_perm: bool,
Expand Down Expand Up @@ -1556,7 +1556,7 @@ def recent_activity( # pylint: disable=too-many-locals
@has_access_api
@event_logger.log_this
@expose("/available_domains/", methods=["GET"])
def available_domains(self) -> FlaskResponse: # pylint: disable=no-self-use
def available_domains(self) -> FlaskResponse:
"""
Returns the list of available Superset Webserver domains (if any)
defined in config. This enables charts embedded in other apps to
Expand Down
45 changes: 36 additions & 9 deletions tests/unit_tests/utils/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
from typing import Any, Dict

import pytest

from superset.utils.core import QueryObjectFilterClause, remove_extra_adhoc_filters
Expand All @@ -25,35 +27,60 @@
"val": "bar",
}

EXTRA_FILTER: QueryObjectFilterClause = {
"col": "foo",
"op": "==",
"val": "bar",
"isExtra": True,
}


@pytest.mark.parametrize(
"original,expected",
[
({"foo": "bar"}, {"foo": "bar"}),
(
{"foo": "bar", "adhoc_filters": [ADHOC_FILTER]},
{"foo": "bar", "adhoc_filters": [ADHOC_FILTER]}
{"foo": "bar", "adhoc_filters": [ADHOC_FILTER]},
),
(
{"foo": "bar", "adhoc_filters": [{**ADHOC_FILTER, "isExtra": True}]},
{"foo": "bar", "adhoc_filters": [EXTRA_FILTER]},
{"foo": "bar", "adhoc_filters": []},
),
(
{"foo": "bar", "adhoc_filters": [ADHOC_FILTER, {**ADHOC_FILTER, "isExtra": True}]},
{
"foo": "bar",
"adhoc_filters": [ADHOC_FILTER, EXTRA_FILTER],
},
{"foo": "bar", "adhoc_filters": [ADHOC_FILTER]},
),
(
{"foo": "bar",
"adhoc_filters_b": [ADHOC_FILTER, {**ADHOC_FILTER, "isExtra": True}]},
{
"foo": "bar",
"adhoc_filters_b": [ADHOC_FILTER, EXTRA_FILTER],
},
{"foo": "bar", "adhoc_filters_b": [ADHOC_FILTER]},
),
(
{"foo": "bar",
"custom_adhoc_filters": [ADHOC_FILTER, {**ADHOC_FILTER, "isExtra": True}]},
{"foo": "bar", "custom_adhoc_filters": [ADHOC_FILTER, {**ADHOC_FILTER, "isExtra": True}]},
{
"foo": "bar",
"custom_adhoc_filters": [
ADHOC_FILTER,
EXTRA_FILTER,
],
},
{
"foo": "bar",
"custom_adhoc_filters": [
ADHOC_FILTER,
EXTRA_FILTER,
],
},
),
],
)
def test_remove_extra_adhoc_filters(original, expected):
def test_remove_extra_adhoc_filters(
original: Dict[str, Any], expected: Dict[str, Any]
) -> None:
remove_extra_adhoc_filters(original)
assert expected == original

0 comments on commit 978519f

Please sign in to comment.