From 786d7706e7cbe1bc266db47c8b4865b4c94b1d58 Mon Sep 17 00:00:00 2001 From: John Bodley <4567245+john-bodley@users.noreply.github.com> Date: Wed, 23 Oct 2019 16:04:46 -0700 Subject: [PATCH] [fix] Updating parse_human_timedelta typing (#8436) --- superset/common/query_object.py | 4 +--- superset/utils/core.py | 2 +- tests/utils_tests.py | 1 + 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/superset/common/query_object.py b/superset/common/query_object.py index 4c83c8726..b2822e37d 100644 --- a/superset/common/query_object.py +++ b/superset/common/query_object.py @@ -78,9 +78,7 @@ class QueryObject: ) 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 f4d1ac85c..a27ff71a0 100644 --- a/superset/utils/core.py +++ b/superset/utils/core.py @@ -291,7 +291,7 @@ class DashboardEncoder(json.JSONEncoder): 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 ad9fa0d00..02703f027 100644 --- a/tests/utils_tests.py +++ b/tests/utils_tests.py @@ -130,6 +130,7 @@ class UtilsTestCase(unittest.TestCase): 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):