Update json_to_md.py
Run Pytest with Allure and Coverage Reports / tests (push) Successful in 54s
Run Pytest with Allure and Coverage Reports / deploy (push) Has been skipped

This commit is contained in:
2025-07-10 11:08:02 +02:00
parent 8cee764719
commit 19da47aa4b
+17 -9
View File
@@ -36,6 +36,14 @@ def write_details_block(f, title, data):
f.write("```\n")
f.write("</details>\n\n")
def extract_params(test):
if "params" in test:
return stringify(test["params"])
if "[" in test.get("nodeid", ""):
raw = test["nodeid"].split("[")[-1].rstrip("]")
return ', '.join(f"`{p}`" for p in raw.split("-"))
return "`None`"
def json_to_adaptive_md(json_path, md_path):
with open(json_path) as f:
data = json.load(f)
@@ -78,7 +86,7 @@ def json_to_adaptive_md(json_path, md_path):
f.write("</details>\n\n")
if "tests" in data:
f.write("## 🧪 Tests\n")
f.write("## 🔎 Tests\n")
for test in data["tests"]:
outcome = test.get("outcome", "unknown")
icons = {"passed": "", "failed": "", "skipped": "⏭️", "error": ""}
@@ -88,12 +96,9 @@ def json_to_adaptive_md(json_path, md_path):
f.write(f"<details>\n<summary>{emoji} `{short_name}`</summary>\n\n")
if "[" in nodeid:
params = nodeid.split("[")[-1].rstrip("]")
param_list = params.split("-")
f.write(f"- **Paramètres:**\n")
for i, val in enumerate(param_list, 1):
f.write(f" - Param {i}: `{val}`\n")
param_string = extract_params(test)
if param_string != "`None`":
f.write(f"- **Paramètres:** {param_string}\n")
f.write(f"- **Statut:** {emoji} `{outcome}`\n")
duration = test.get("call", {}).get("duration")
@@ -104,7 +109,10 @@ def json_to_adaptive_md(json_path, md_path):
f.write("<details>\n<summary>Détails</summary>\n\n")
for key in ['duration', 'outcome', 'crash', 'traceback', 'longrepr']:
value = test.get("call", {}).get(key)
f.write(f"- **{key}:**\n```\n{value if value else 'None'}\n```\n\n")
f.write(f"- **{key}:**\n")
f.write("```\n")
f.write(f"{value if value else 'None'}\n")
f.write("```\n\n")
f.write("</details>\n")
f.write("</details>\n\n")
@@ -119,4 +127,4 @@ def main():
print(f"✅ Rapport généré dans {args.output}")
if __name__ == "__main__":
main()
main()