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)