Skip to content

Commit 1ee6f72

Browse files
committed
feat(filter): Support for wildcard in hardware
Signed-off-by: Camila Alvarez <cam.alvarez.i@gmail.com>
1 parent b26406d commit 1ee6f72

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

kcidev/subcommands/results/parser.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,13 @@ def filter_out_by_hardware(test, filter_data):
225225
if "hardware" not in filter_data:
226226
return False
227227

228-
hardware_list = filter_data["hardware"]
229-
if test["environment_misc"]["platform"] in hardware_list:
228+
hardware_list_re = re.compile(filter_data["hardware"])
229+
if hardware_list_re.match(test["environment_misc"]["platform"]):
230230
return False
231231

232232
if test["environment_compatible"]:
233233
for compatible in test["environment_compatible"]:
234-
if compatible in hardware_list:
234+
if hardware_list_re.match(compatible):
235235
return False
236236

237237
return True
@@ -246,17 +246,19 @@ def filter_out_by_test(test, filter_data):
246246
return True
247247

248248

249+
def filter_array2regex(filter_array):
250+
return f"^({'|'.join(filter_array)})$".replace(".", r"\.").replace("*", ".*")
251+
252+
249253
def parse_filter_file(filter):
250254
filter_data = yaml.safe_load(filter) if filter else None
251255
if filter_data is None:
252256
return None
253257
parsed_filter = {}
254258
if "hardware" in filter_data:
255-
parsed_filter["hardware"] = filter_data["hardware"]
259+
parsed_filter["hardware"] = filter_array2regex(filter_data["hardware"])
256260
if "test" in filter_data:
257-
parsed_filter["test"] = rf"^({'|'.join(filter_data.get('test', []))})$".replace(
258-
".", r"\."
259-
).replace("*", ".*")
261+
parsed_filter["test"] = filter_array2regex(filter_data["test"])
260262
return parsed_filter
261263

262264

0 commit comments

Comments
 (0)