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

This commit is contained in:
2025-07-19 18:54:21 +02:00
parent b41f864867
commit 6fe0cdffe6
+39 -28
View File
@@ -71,35 +71,7 @@ def get_details_block_other_sections(summary, body, level=0):
f"</details>\n"
f"</div>\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"<br><span style='color: #888; font-size: 0.9em;'>(params: {param_display})</span>"
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" - <details>\n <summary>{summary}</summary>\n\n{body_indented}\n </details>\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" </details>\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"<br><span style='color: #888; font-size: 0.9em;'>(params: {param_display})</span>"
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" - <details>\n"
f" <summary>{summary}</summary>\n\n"
f"{body_content}\n"
f" </details>\n"
)
def json_to_md_nested(json_path, md_path, runtime_params=None):
with open(json_path) as f: