@@ -112,15 +112,21 @@ def validate_basic_schema_details(
112
112
except RefResolutionError :
113
113
self .fail (f"Can't find prop { prop } for { section } in { filepath } " )
114
114
115
- def _build_keywords (
116
- self , obj : Any , schema_resolver : RefResolver , refs : list [str ] | None = None
117
- ):
118
- if refs is None :
119
- refs = []
115
+ def _build_keywords (self , obj : Any , schema_resolver : RefResolver , refs : list [str ]):
120
116
if not isinstance (obj , dict ):
121
117
yield []
122
118
return
123
119
120
+ if "$ref" in obj :
121
+ ref = obj ["$ref" ]
122
+ if ref in refs :
123
+ yield []
124
+ return
125
+ _ , resolved_schema = schema_resolver .resolve (ref )
126
+ yield from self ._build_keywords (
127
+ resolved_schema , schema_resolver , refs + [ref ]
128
+ )
129
+
124
130
if "type" in obj :
125
131
if "object" in ensure_list (obj ["type" ]):
126
132
if "properties" in obj :
@@ -134,25 +140,14 @@ def _build_keywords(
134
140
):
135
141
yield ["*" ] + item
136
142
137
- if "$ref" in obj :
138
- ref = obj ["$ref" ]
139
- if ref in refs :
140
- yield []
141
- return
142
- _ , resolved_schema = schema_resolver .resolve (ref )
143
- for item in self ._build_keywords (
144
- resolved_schema , schema_resolver , refs + [ref ]
145
- ):
146
- yield item
147
-
148
143
yield []
149
144
150
145
def build_keywords (self , schema_resolver ):
151
146
self ._found_keywords .append (
152
147
"/" .join (["Resources" , schema_resolver .referrer ["typeName" ], "Properties" ])
153
148
)
154
149
for k , v in schema_resolver .referrer .get ("properties" ).items ():
155
- for item in self ._build_keywords (v , schema_resolver ):
150
+ for item in self ._build_keywords (v , schema_resolver , [] ):
156
151
self ._found_keywords .append (
157
152
"/" .join (
158
153
[
@@ -214,7 +209,9 @@ def test_data_module_specs(self):
214
209
self .validate_basic_schema_details (
215
210
schema_resolver , f"{ dirpath } /{ filename } "
216
211
)
217
- self .build_keywords (schema_resolver )
212
+
213
+ if region == "us-east-1" :
214
+ self .build_keywords (schema_resolver )
218
215
219
216
def cfn_lint (self , validator , _ , keywords , schema ):
220
217
keywords = ensure_list (keywords )
0 commit comments