Files
nanoreth/.github/assets/hive/parse.py
2024-07-04 10:15:21 +00:00

43 lines
1.3 KiB
Python

import json
import yaml
import sys
import argparse
# Argument parser setup
parser = argparse.ArgumentParser(description="Check for unexpected test results based on an exclusion list.")
parser.add_argument("report_json", help="Path to the hive report JSON file.")
parser.add_argument("--exclusion", required=True, help="Path to the exclusion YAML file.")
args = parser.parse_args()
# Load hive JSON
with open(args.report_json, 'r') as file:
report = json.load(file)
# Load exclusion YAML
with open(args.exclusion, 'r') as file:
exclusion_data = yaml.safe_load(file)
exclusions = exclusion_data.get(report['name'], [])
# Collect unexpected failures and passes
unexpected_failures = []
unexpected_passes = []
for test in report['testCases'].values():
test_name = test['name']
test_pass = test['summaryResult']['pass']
if test_name in exclusions:
if test_pass:
unexpected_passes.append(test_name)
else:
if not test_pass:
unexpected_failures.append(test_name)
# Check if there are any unexpected failures or passes and exit with error
if unexpected_failures or unexpected_passes:
if unexpected_failures:
print("Unexpected Failures:", unexpected_failures)
if unexpected_passes:
print("Unexpected Passes:", unexpected_passes)
sys.exit(1)
print("Success.")