You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zh...@apache.org on 2024/01/09 02:05:38 UTC
(dolphinscheduler-sdk-python) branch main updated: impv: Add raise error test for convert_params (#131)
This is an automated email from the ASF dual-hosted git repository.
zhongjiajie pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler-sdk-python.git
The following commit(s) were added to refs/heads/main by this push:
new e04b836 impv: Add raise error test for convert_params (#131)
e04b836 is described below
commit e04b836e54fb7bfd96527007cfeaa0fef4444b07
Author: Jay Chung <zh...@gmail.com>
AuthorDate: Tue Jan 9 10:05:33 2024 +0800
impv: Add raise error test for convert_params (#131)
---
src/pydolphinscheduler/core/parameter.py | 4 +++-
tests/core/test_local_parameter.py | 13 +++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/src/pydolphinscheduler/core/parameter.py b/src/pydolphinscheduler/core/parameter.py
index 15ea723..ea94971 100644
--- a/src/pydolphinscheduler/core/parameter.py
+++ b/src/pydolphinscheduler/core/parameter.py
@@ -123,7 +123,9 @@ class ParameterHelper:
parameters = []
params = params or {}
if not isinstance(params, dict):
- raise PyDSParamException("input_params must be a dict")
+ raise PyDSParamException(
+ "Parameter `params` must be a dict, but get %s", type(params)
+ )
for key, value in params.items():
if not isinstance(value, BaseDataType):
data_type_cls = ParameterHelper.infer_parameter_type(value)
diff --git a/tests/core/test_local_parameter.py b/tests/core/test_local_parameter.py
index 4a1b0c2..f1042d2 100644
--- a/tests/core/test_local_parameter.py
+++ b/tests/core/test_local_parameter.py
@@ -114,3 +114,16 @@ def test_convert_params():
]
assert results == expect
+
+
+def test_convert_params_error_type():
+ """Test the ParameterHelper convert_params with wrong type raise error."""
+ params = [
+ {"prop": "value_INTEGER", "direct": "IN", "type": "INTEGER", "value": 123},
+ {"prop": "value_LONG", "direct": "IN", "type": "LONG", "value": "1000000"},
+ ]
+ with pytest.raises(
+ PyDSParamException,
+ match="Parameter `params` must be a dict, but get",
+ ):
+ ParameterHelper.convert_params(params, direction=Direction.IN)