diff --git a/json_to_md.py b/json_to_md.py index dc16b51b..4abca6c2 100644 --- a/json_to_md.py +++ b/json_to_md.py @@ -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"
\n{emoji} #{idx}\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")