From 6b1779737313c000f99469059538cdd5313c18d0 Mon Sep 17 00:00:00 2001 From: Kevin DeJong Date: Fri, 21 Jun 2024 09:27:00 -0700 Subject: [PATCH] Parameter of list can have an integer default (#3372) --- src/cfnlint/context/context.py | 11 +++++++++-- test/unit/module/context/test_parameter.py | 12 ++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/cfnlint/context/context.py b/src/cfnlint/context/context.py index c0fea92e11..7a095d8eea 100644 --- a/src/cfnlint/context/context.py +++ b/src/cfnlint/context/context.py @@ -304,9 +304,16 @@ def __post_init__(self, parameter) -> None: if self.type == "CommaDelimitedList" or self.type.startswith("List<"): if "Default" in parameter: - self.default = parameter.get("Default", "").split(",") + default = parameter.get("Default", "") + if isinstance(default, str): + self.default = default.split(",") + else: + self.default = [default] for allowed_value in parameter.get("AllowedValues", []): - self.allowed_values.append(allowed_value.split(",")) + if isinstance(allowed_value, str): + self.allowed_values.append(allowed_value.split(",")) + else: + self.allowed_values.append([allowed_value]) else: self.default = parameter.get("Default") self.allowed_values = parameter.get("AllowedValues") diff --git a/test/unit/module/context/test_parameter.py b/test/unit/module/context/test_parameter.py index 24781a4473..e081f418e9 100644 --- a/test/unit/module/context/test_parameter.py +++ b/test/unit/module/context/test_parameter.py @@ -75,6 +75,18 @@ "Number", [("10", deque(["MinValue"])), ("20", deque(["MaxValue"]))], ), + ( + "Valid list parameter with an integer value", + {"Type": "List", "Default": 10}, + "List", + [(["10"], deque(["Default"]))], + ), + ( + "Valid list parameter with an integer value", + {"Type": "List", "AllowedValues": [10]}, + "List", + [(["10"], deque(["AllowedValues", 0]))], + ), ], ) def test_parameter(name, instance, expected_type, expected_ref):