Update json_to_md.py
This commit is contained in:
+19
-37
@@ -1,5 +1,4 @@
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
import json
|
||||
import argparse
|
||||
@@ -13,38 +12,6 @@ def stringify(obj):
|
||||
return ', '.join(f"`{k}: {stringify(v)}`" for k, v in obj.items())
|
||||
return f"`{str(obj)}`"
|
||||
|
||||
def extract_params(test):
|
||||
# 1. Cas où les params sont déjà extraits
|
||||
if "params" in test and test["params"]:
|
||||
params = test["params"]
|
||||
if isinstance(params, dict):
|
||||
return "\n".join(f"- `{k}` = `{v}`" for k, v in params.items())
|
||||
return f"- `{params}`"
|
||||
|
||||
# 2. Extraction depuis nodeid
|
||||
nodeid = test.get("nodeid", "")
|
||||
if "[" not in nodeid:
|
||||
return None
|
||||
|
||||
params_str = nodeid.split("[")[-1].rstrip("]")
|
||||
if not params_str:
|
||||
return None
|
||||
|
||||
# Formatage des paramètres
|
||||
lines = []
|
||||
if "=" in params_str: # Format nommé
|
||||
for param in params_str.split("-"):
|
||||
if "=" in param:
|
||||
key, val = param.split("=", 1)
|
||||
lines.append(f"- `{key.strip()}` = `{val.strip()}`")
|
||||
else:
|
||||
lines.append(f"- `{param.strip()}`")
|
||||
else: # Format positionnel
|
||||
for i, val in enumerate(params_str.split("-"), 1):
|
||||
lines.append(f"- Param {i}: `{val.strip()}`")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
def json_to_md_nested(json_path, md_path):
|
||||
with open(json_path) as f:
|
||||
data = json.load(f)
|
||||
@@ -67,7 +34,8 @@ def json_to_md_nested(json_path, md_path):
|
||||
for test in data["tests"]:
|
||||
nodeid = test.get("nodeid", "")
|
||||
parts = nodeid.split("::")
|
||||
filename = parts[0]
|
||||
# Nettoyage du nom de fichier
|
||||
filename = parts[0].replace("tests\\", "").replace("tests/", "")
|
||||
funcname = parts[1].split("[")[0]
|
||||
grouped[filename][funcname].append(test)
|
||||
|
||||
@@ -81,9 +49,23 @@ def json_to_md_nested(json_path, md_path):
|
||||
emoji = icons.get(outcome, "❔")
|
||||
f.write(f"<details>\n<summary>{emoji} #{idx}</summary>\n\n")
|
||||
|
||||
param_string = extract_params(test)
|
||||
if param_string:
|
||||
f.write(f"- **Paramètres:**\n{param_string}\n")
|
||||
# Extraction directe des paramètres depuis nodeid
|
||||
nodeid = test.get("nodeid", "")
|
||||
if "[" in nodeid:
|
||||
params_str = nodeid.split("[")[-1].rstrip("]")
|
||||
if params_str:
|
||||
f.write("- **Paramètres:**\n")
|
||||
if "=" in params_str: # Format nommé
|
||||
for param in params_str.split("-"):
|
||||
if "=" in param:
|
||||
key, val = param.split("=", 1)
|
||||
f.write(f" - `{key.strip()}` = `{val.strip()}`\n")
|
||||
else:
|
||||
f.write(f" - `{param.strip()}`\n")
|
||||
else: # Format positionnel
|
||||
for i, val in enumerate(params_str.split("-"), 1):
|
||||
f.write(f" - Param {i}: `{val.strip()}`\n")
|
||||
f.write("\n")
|
||||
|
||||
f.write(f"- **Statut:** {emoji} `{outcome}`\n")
|
||||
duration = test.get("call", {}).get("duration")
|
||||
|
||||
Reference in New Issue
Block a user