Skip to content

Commit 6b17797

Browse files
authored
Parameter of list<number> can have an integer default (#3372)
1 parent 8dd8907 commit 6b17797

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/cfnlint/context/context.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,16 @@ def __post_init__(self, parameter) -> None:
304304

305305
if self.type == "CommaDelimitedList" or self.type.startswith("List<"):
306306
if "Default" in parameter:
307-
self.default = parameter.get("Default", "").split(",")
307+
default = parameter.get("Default", "")
308+
if isinstance(default, str):
309+
self.default = default.split(",")
310+
else:
311+
self.default = [default]
308312
for allowed_value in parameter.get("AllowedValues", []):
309-
self.allowed_values.append(allowed_value.split(","))
313+
if isinstance(allowed_value, str):
314+
self.allowed_values.append(allowed_value.split(","))
315+
else:
316+
self.allowed_values.append([allowed_value])
310317
else:
311318
self.default = parameter.get("Default")
312319
self.allowed_values = parameter.get("AllowedValues")

test/unit/module/context/test_parameter.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,18 @@
7575
"Number",
7676
[("10", deque(["MinValue"])), ("20", deque(["MaxValue"]))],
7777
),
78+
(
79+
"Valid list parameter with an integer value",
80+
{"Type": "List<Number>", "Default": 10},
81+
"List<Number>",
82+
[(["10"], deque(["Default"]))],
83+
),
84+
(
85+
"Valid list parameter with an integer value",
86+
{"Type": "List<Number>", "AllowedValues": [10]},
87+
"List<Number>",
88+
[(["10"], deque(["AllowedValues", 0]))],
89+
),
7890
],
7991
)
8092
def test_parameter(name, instance, expected_type, expected_ref):

0 commit comments

Comments
 (0)