Update json_to_md.py
Run Pytest with HTML and XML Test Reports / tests (push) Successful in 26s

This commit is contained in:
2025-07-18 10:30:20 +02:00
parent 23db828438
commit 0d637b41e8
+12 -29
View File
@@ -191,8 +191,8 @@ def json_to_md_nested(json_path, md_path, runtime_params=None):
has_fail = any(c.get("outcome") != "passed" for c in collectors)
folder_emoji = "" if not has_fail else ""
folder_body = ""
outputs = []
f.write(f"- <details>\n")
f.write(f" <summary>{folder_emoji} {folder} ({len(collectors)} tests)<!-- prevent auto-open --></summary>\n\n")
collectors_sorted = sorted(collectors, key=lambda c: c.get("nodeid", "").split("[")[0])
for collector in collectors_sorted:
@@ -201,36 +201,19 @@ def json_to_md_nested(json_path, md_path, runtime_params=None):
nodeid = collector.get("nodeid", "unknown")
short_node = nodeid.split("[")[0]
body_coll = f" - **Outcome:** `{outcome}`\n"
other_keys = {k: v for k, v in collector.items() if k not in {"nodeid", "outcome"}}
if other_keys:
for k, v in other_keys.items():
f.write(f" - <details>\n")
f.write(f" <summary>{emoji} {short_node}</summary>\n\n")
f.write(f" ```python\n")
f.write(f" Outcome: {outcome}\n")
for k, v in collector.items():
if k not in {"nodeid", "outcome"}:
block = stringify(v)
body_coll += f" - **{k}:**\n\n"
for line in f"```python\n{block}\n```".splitlines():
body_coll += f" {line}\n"
else:
body_coll += " - **Details:** `None`\n"
f.write(f" {k}: {block}\n")
f.write(f" ```\n")
folder_body += f" - <details>\n"
folder_body += f" <summary>{emoji} {short_node}</summary>\n\n"
for line in body_coll.strip().splitlines():
folder_body += f" {line}\n"
folder_body += f" </details>\n\n"
f.write(f" </details>\n\n")
# Résumé erreurs
if outputs:
folder_body += " ### 🧾 Error or Result Summary\n\n"
for out in outputs:
for line in out.strip().splitlines():
folder_body += f" {line}\n"
folder_body += "\n"
# Bloc principal du dossier
f.write(f"- <details>\n")
f.write(f" <summary>{folder_emoji} {folder} ({len(collectors)} tests)<!-- prevent auto-open --></summary>\n\n")
for line in folder_body.strip().splitlines():
f.write(f" {line}\n")
f.write(f"</details>\n\n")