Skip to content

Commit 8462ee3

Browse files
committed
move check to param init
1 parent 08533b3 commit 8462ee3

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

openhexa/sdk/pipelines/parameter/decorator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ def __init__(
9494
self.connection = connection
9595
self.directory = directory
9696
self.disables = list(disables) if disables else None
97+
if self.disables and not isinstance(self.type, Boolean):
98+
raise InvalidParameterError(
99+
f"Only boolean parameters can use 'disables'. Parameter '{self.code}' is of type {self.type}."
100+
)
97101

98102
self._validate_default(default, multiple)
99103
self.default = default
@@ -215,10 +219,6 @@ def validate_parameters(parameters: list[Parameter]):
215219
for parameter in parameters:
216220
if not parameter.disables:
217221
continue
218-
if not isinstance(parameter.type, Boolean):
219-
raise InvalidParameterError(
220-
f"Only boolean parameters can use 'disables'. Parameter '{parameter.code}' is of type {parameter.type}."
221-
)
222222
for target_code in parameter.disables:
223223
if target_code == parameter.code:
224224
raise InvalidParameterError(f"Parameter '{parameter.code}' cannot disable itself.")

tests/test_parameter.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -443,12 +443,10 @@ def test_validate_parameters_disables_ok():
443443
validate_parameters([controller, data_input])
444444

445445

446-
def test_validate_parameters_disables_must_be_boolean():
447-
"""Only boolean parameters can use 'disables'."""
448-
controller = Parameter("mode", type=str, disables=["data_input"])
449-
data_input = Parameter("data_input", type=str)
446+
def test_disables_must_be_boolean():
447+
"""Only boolean parameters can use 'disables' — rejected at construction time."""
450448
with pytest.raises(InvalidParameterError):
451-
validate_parameters([controller, data_input])
449+
Parameter("mode", type=str, disables=["data_input"])
452450

453451

454452
def test_validate_parameters_disables_unknown_target():

0 commit comments

Comments
 (0)