def test_validation_accepts_integer_values_for_dropdowns(self, _): schema = [{"name": "bar", "type": "query", "queryId": 1}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": 1}) self.assertEquals("foo 1", query.text)
def test_validates_enum_parameters(self): schema = [{"name": "bar", "type": "enum", "enumOptions": ["baz", "qux"]}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": "baz"}) self.assertEquals("foo baz", query.text)
def test_validates_query_parameters(self, _): schema = [{"name": "bar", "type": "query", "queryId": 1}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": "baz"}) self.assertEquals("foo baz", query.text)
def test_validates_date_parameters(self): schema = [{"name": "bar", "type": "date"}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": "2000-01-01 12:00:00"}) self.assertEquals("foo 2000-01-01 12:00:00", query.text)
def test_validates_text_parameters(self): schema = [{"name": "bar", "type": "text"}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": u"baz"}) self.assertEquals("foo baz", query.text)
def test_coerces_number_parameters(self): schema = [{"name": "bar", "type": "number"}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": "3.14"}) self.assertEquals("foo 3.14", query.text)
def test_validates_date_range_parameters(self): schema = [{"name": "bar", "type": "date-range"}] query = ParameterizedQuery("foo {{bar.start}} {{bar.end}}", schema) query.apply({"bar": {"start": "2000-01-01 12:00:00", "end": "2000-12-31 12:00:00"}}) self.assertEquals("foo 2000-01-01 12:00:00 2000-12-31 12:00:00", query.text)
def test_validates_number_parameters(self): schema = [{"name": "bar", "type": "number"}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": 7}) self.assertEquals("foo 7", query.text)
def test_coerces_number_parameters(self): schema = [{"name": "bar", "type": "number"}] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": "3.14"}) self.assertEqual("foo 3.14", query.text)
def test_raises_on_unlisted_enum_value_parameters(self): schema = [{ "name": "bar", "type": "enum", "enumOptions": ["baz", "qux"] }] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"bar": "shlomo"})
def test_raises_on_unlisted_enum_list_value_parameters(self): schema = [{ "name": "bar", "type": "enum", "enumOptions": ["baz", "qux"], "multiValuesOptions": {"separator": ",", "prefix": "", "suffix": ""} }] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"bar": ["shlomo", "baz"]})
def test_validates_enum_list_value_parameters(self): schema = [{ "name": "bar", "type": "enum", "enumOptions": ["baz", "qux"], "multiValuesOptions": {"separator": ",", "prefix": "'", "suffix": "'"} }] query = ParameterizedQuery("foo {{bar}}", schema) query.apply({"bar": ["qux", "baz"]}) self.assertEqual("foo 'qux','baz'", query.text)
def test_raises_on_invalid_date_parameters(self): schema = [{"name": "bar", "type": "date"}] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"bar": "baz"})
def test_raises_on_unlisted_query_value_parameters(self, _): schema = [{"name": "bar", "type": "query", "queryId": 1}] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"bar": "shlomo"})
def test_raises_on_unexpected_param_types(self): schema = [{"name": "bar", "type": "burrito"}] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"bar": "baz"})
def test_raises_on_parameters_not_in_schema(self): schema = [{"name": "bar", "type": "text"}] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"qux": 7})
def test_raises_on_unlisted_enum_value_parameters(self): schema = [{"name": "bar", "type": "enum", "enumOptions": ["baz", "qux"]}] query = ParameterizedQuery("foo", schema) with pytest.raises(InvalidParameterError): query.apply({"bar": "shlomo"})