| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # pylint: disable=invalid-name, use-implicit-booleaness-not-comparison |
| |
| import copy |
| from typing import Any |
| |
| from superset.legacy import update_time_range |
| from tests.unit_tests.conftest import with_feature_flags |
| |
| original_form_data = { |
| "granularity_sqla": "order_date", |
| "datasource": "22__table", |
| "viz_type": "table", |
| "query_mode": "raw", |
| "groupby": [], |
| "time_grain_sqla": "P1D", |
| "temporal_columns_lookup": {"order_date": True}, |
| "all_columns": ["order_date", "state", "product_code"], |
| "percent_metrics": [], |
| "adhoc_filters": [ |
| { |
| "clause": "WHERE", |
| "subject": "order_date", |
| "operator": "TEMPORAL_RANGE", |
| "comparator": "No filter", |
| "expressionType": "SIMPLE", |
| } |
| ], |
| "order_by_cols": [], |
| "row_limit": 1000, |
| "server_page_length": 10, |
| "order_desc": True, |
| "table_timestamp_format": "smart_date", |
| "show_cell_bars": True, |
| "color_pn": True, |
| "extra_form_data": {}, |
| "dashboards": [19], |
| "force": False, |
| "result_format": "json", |
| "result_type": "full", |
| "include_time": False, |
| } |
| |
| |
| def test_update_time_range_since_until() -> None: |
| """ |
| Tests for the old `since` and `until` parameters. |
| """ |
| form_data: dict[str, Any] |
| |
| form_data = {} |
| update_time_range(form_data) |
| assert form_data == {} |
| |
| form_data = {"since": "yesterday"} |
| update_time_range(form_data) |
| assert form_data == {"time_range": "yesterday : "} |
| |
| form_data = {"until": "tomorrow"} |
| update_time_range(form_data) |
| assert form_data == {"time_range": " : tomorrow"} |
| |
| form_data = {"since": "yesterday", "until": "tomorrow"} |
| update_time_range(form_data) |
| assert form_data == {"time_range": "yesterday : tomorrow"} |
| |
| |
| def test_update_time_range_granularity_sqla_with_feature_flag() -> None: |
| """ |
| Tests for the unfiltered `granularity_sqla`. |
| """ |
| form_data = copy.deepcopy(original_form_data) |
| update_time_range(form_data) |
| assert form_data["time_range"] == "No filter" |