diff --git a/superset/common/query_object.py b/superset/common/query_object.py index 4c83c87265f2..b2822e37daca 100644 --- a/superset/common/query_object.py +++ b/superset/common/query_object.py @@ -78,9 +78,7 @@ def __init__( ) self.is_timeseries = is_timeseries self.time_range = time_range - self.time_shift = ( - utils.parse_human_timedelta(time_shift) if time_shift else None - ) + self.time_shift = utils.parse_human_timedelta(time_shift) self.groupby = groupby or [] # Temporal solution for backward compatability issue diff --git a/superset/utils/core.py b/superset/utils/core.py index f4d1ac85c13d..a27ff71a0fc4 100644 --- a/superset/utils/core.py +++ b/superset/utils/core.py @@ -291,7 +291,7 @@ def default(self, o): return json.JSONEncoder(sort_keys=True).default(self, o) -def parse_human_timedelta(s: str) -> timedelta: +def parse_human_timedelta(s: Optional[str]) -> timedelta: """ Returns ``datetime.datetime`` from natural language time deltas diff --git a/tests/utils_tests.py b/tests/utils_tests.py index ad9fa0d00334..02703f027980 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -130,6 +130,7 @@ def test_parse_human_timedelta(self, mock_datetime): self.assertEqual(parse_human_timedelta("now"), timedelta(0)) self.assertEqual(parse_human_timedelta("1 year"), timedelta(366)) self.assertEqual(parse_human_timedelta("-1 year"), timedelta(-365)) + self.assertEqual(parse_human_timedelta(None), timedelta(0)) @patch("superset.utils.core.datetime") def test_parse_past_timedelta(self, mock_datetime):