From ff2a2788499f48fe5de154f8aeb2d072fcb982ea Mon Sep 17 00:00:00 2001 From: tligui_y Date: Thu, 10 Jul 2025 14:26:47 +0200 Subject: [PATCH] Update json_to_md.py --- json_to_md.py | 50 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/json_to_md.py b/json_to_md.py index 0cebe8e66..6c7fad2bd 100644 --- a/json_to_md.py +++ b/json_to_md.py @@ -72,28 +72,42 @@ def json_to_md_nested(json_path, md_path, allure_dir=None): if "collectors" in data: f.write("## πŸ“š CollectΓ©s\n") + + # Group by file / subpath + grouped_collectors = defaultdict(list) for collector in data["collectors"]: - outcome = collector.get("outcome", "unknown") - emoji = "βœ…" if outcome == "passed" else "❌" nodeid = collector.get("nodeid", "unknown") - short_node = nodeid.split("[")[0] - f.write(f"
\n{emoji} `{short_node}`\n\n") - f.write(f"- **outcome:** `{outcome}`\n") - results = collector.get("result", []) - if results: - f.write("- **result:**\n```\n") - for item in results: - if isinstance(item, dict): - for k, v in item.items(): - f.write(f"{k}: {v}\n") - f.write("\n") - else: - f.write(f"{item}\n") - f.write("```\n") - else: - f.write("- **result:** `None`\n") + base = nodeid.split("::")[0].replace("\\", "/") # Normalize paths + grouped_collectors[base].append(collector) + + for base_path in sorted(grouped_collectors): + f.write(f"
\nπŸ“ `{base_path}`\n\n") + for collector in grouped_collectors[base_path]: + outcome = collector.get("outcome", "unknown") + emoji = "βœ…" if outcome == "passed" else "❌" + nodeid = collector.get("nodeid", "unknown") + short_node = nodeid.split("[")[0] + + f.write(f"
\n{emoji} `{short_node}`\n\n") + f.write(f"- **outcome:** `{outcome}`\n") + + results = collector.get("result", []) + if results: + f.write("- **result:**\n```\n") + for item in results: + if isinstance(item, dict): + for k, v in item.items(): + f.write(f"{k}: {v}\n") + f.write("\n") + else: + f.write(f"{item}\n") + f.write("```\n") + else: + f.write("- **result:** `None`\n") + f.write("
\n\n") f.write("
\n\n") + if "tests" in data: f.write("## πŸ”Ž Tests\n") grouped = defaultdict(lambda: defaultdict(list))