diff --git a/src/openjd/model/v2023_09/_model.py b/src/openjd/model/v2023_09/_model.py index b0a8837..890b7ed 100644 --- a/src/openjd/model/v2023_09/_model.py +++ b/src/openjd/model/v2023_09/_model.py @@ -1055,6 +1055,8 @@ class Environment(OpenJDModel_v2023_09): @model_validator(mode="before") @classmethod def _validate_has_script_or_variables(cls, values: dict[str, Any]) -> dict[str, Any]: + if not isinstance(values, dict): + raise ValueError("Environment must be a mapping.") if values.get("script") is None and values.get("variables") is None: raise ValueError("Environment must have either a script or variables.") return values diff --git a/test/openjd/model/v2023_09/test_environment_template.py b/test/openjd/model/v2023_09/test_environment_template.py index edef1b0..864e134 100644 --- a/test/openjd/model/v2023_09/test_environment_template.py +++ b/test/openjd/model/v2023_09/test_environment_template.py @@ -102,6 +102,14 @@ def test_parse_success(self, data: dict[str, Any]) -> None: 1, id="missing spec ver", ), + pytest.param( + { + "specificationVersion": "environment-2023-09", + "environment": None, + }, + 1, + id="environment is None", + ), # pytest.param( {