diff --git a/json_to_md.py b/json_to_md.py index 0a817604..08d74498 100644 --- a/json_to_md.py +++ b/json_to_md.py @@ -71,35 +71,7 @@ def get_details_block_other_sections(summary, body, level=0): f"\n" f"\n\n") -''' -def make_test_block(test, status, emoji, level, runtime_params): - nodeid = test.get("nodeid", "") - callspec = runtime_params.get(nodeid, {}) - params = callspec.get("params", {}) if isinstance(callspec, dict) else {} - summary = f"{emoji} Test {test['global_number']}" - if params: - param_display = ", ".join(f"{k}={sanitize_param_value(v)}" for k, v in params.items()) - summary += f"
(params: {param_display})" - - body = [] - - if callspec: - block = f"```python\n{stringify(callspec)}\n```" - body.append(f"**📌 Runtime Parameters**\n\n{block}\n\n") - - skip_keys = {"nodeid"} - for phase in [k for k in test if isinstance(test[k], dict) and k not in skip_keys]: - phase_content = [f"**🔧 {phase.capitalize()} Phase**\n\n"] - for field, value in test[phase].items(): - block = f"```python\n{stringify(value)}\n```" - phase_content.append(f"**{field}:**\n\n{block}\n\n") - body.append("".join(phase_content)) - - body_content = "\n".join(body).strip() - - body_indented = indent(body_content, " ") - return f" -
\n {summary}\n\n{body_indented}\n
\n\n" ''' def make_test_block(test, status, emoji, level, runtime_params): @@ -139,6 +111,45 @@ def make_test_block(test, status, emoji, level, runtime_params): f" \n\n" ) +''' + +def make_test_block(test, status, emoji, level, runtime_params): + nodeid = test.get("nodeid", "") + callspec = runtime_params.get(nodeid, {}) + params = callspec.get("params", {}) if isinstance(callspec, dict) else {} + + summary = f"{emoji} Test {test['global_number']}" + if params: + param_display = ", ".join(f"{k}={sanitize_param_value(v)}" for k, v in params.items()) + summary += f"
(params: {param_display})" + + body = [] + + if callspec: + body.append(" **📌 Runtime Parameters**") + body.append(" ```python") + body.append(f" {stringify(callspec)}") + body.append(" ```") + + skip_keys = {"nodeid"} + for phase in [k for k in test if isinstance(test[k], dict) and k not in skip_keys]: + body.append(f" **🔧 {phase.capitalize()} Phase**") + for field, value in test[phase].items(): + body.append(f" **{field}:**") + body.append(" ```python") + # Formatage universel quel que soit le type + formatted_value = stringify(value) if not isinstance(value, str) else value + body.append(f" {formatted_value}") + body.append(" ```") + + body_content = "\n".join(body) + + return ( + f" -
\n" + f" {summary}\n\n" + f"{body_content}\n" + f"
\n" + ) def json_to_md_nested(json_path, md_path, runtime_params=None): with open(json_path) as f: