From bd47d54743f387b8d983b5afac3294495e8a8573 Mon Sep 17 00:00:00 2001 From: Arik Fraimovich Date: Thu, 15 Aug 2019 14:47:29 +0300 Subject: [PATCH] ParameterizedQuery: handle the case where a value is null --- redash/models/parameterized_query.py | 2 +- tests/models/test_parameterized_query.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/redash/models/parameterized_query.py b/redash/models/parameterized_query.py index 60a443b8bb..784e609cc3 100644 --- a/redash/models/parameterized_query.py +++ b/redash/models/parameterized_query.py @@ -94,7 +94,7 @@ def _is_date(string): try: parse(string) return True - except ValueError: + except (ValueError, TypeError): return False diff --git a/tests/models/test_parameterized_query.py b/tests/models/test_parameterized_query.py index 3f8dc42436..b4ba635b8a 100644 --- a/tests/models/test_parameterized_query.py +++ b/tests/models/test_parameterized_query.py @@ -97,6 +97,13 @@ def test_raises_on_invalid_date_parameters(self): with pytest.raises(InvalidParameterError): query.apply({"bar": "baz"}) + def test_raises_on_none_for_date_parameters(self): + schema = [{"name": "bar", "type": "date"}] + query = ParameterizedQuery("foo", schema) + + with pytest.raises(InvalidParameterError): + query.apply({"bar": None}) + def test_validates_date_parameters(self): schema = [{"name": "bar", "type": "date"}] query = ParameterizedQuery("foo {{bar}}", schema)