mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-09 22:31:41 +00:00
* wip * refactor(tests): move sdk function tracing into rust python harness * dead code * fix: handle harness keyboard interrupts * refactor(tests): deduplicate rust python harness helpers * fix(harness): expose validated strategy choices * wip * refactor(harness): let strategies own parity reports * docs(harness): update strategy structure * refactor(harness): localize strategy report views * wip * fix(harness): satisfy mapping runner type checks * fix(harness): clarify trace parity output * wip * fix(harness): clarify unit mapping report * fix(harness): finalize trace parity contracts * refactor(harness): structure parity contracts * feat: derive unit test mapping from traces * feat(harness): map rstest test families * feat(ocr): port Azure document intelligence tests * feat(harness): enforce complete unit mappings * feat(ocr): add reducto core transforms * feat(harness): classify host-only unit tests * fix(ocr): complete Rust provider plumbing * fix(harness): reuse OCR parity workers
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from collections.abc import Sequence
|
|
from typing import Final
|
|
|
|
from pydantic import ValidationError
|
|
|
|
from ...shared.reporting.models import CaseResult
|
|
from ...shared.reporting.rendering import ReportSection, render_case_outcome
|
|
from .mapping_report import MappingReportArtifact, mapping_report_lines
|
|
from .runner import MAPPING_REPORT_ARTIFACT
|
|
|
|
|
|
def _render_artifact(body: str) -> str:
|
|
try:
|
|
artifact: Final = MappingReportArtifact.model_validate_json(body)
|
|
except ValidationError as error:
|
|
return f"Mapping report artifact is invalid: {error}"
|
|
return "\n".join(mapping_report_lines(artifact.report, detailed=artifact.detailed))
|
|
|
|
|
|
def _render_result(result: CaseResult) -> str:
|
|
reports: Final = tuple(
|
|
_render_artifact(artifact.body)
|
|
for artifacts in result.artifacts.values()
|
|
for artifact in artifacts
|
|
if artifact.kind == MAPPING_REPORT_ARTIFACT
|
|
)
|
|
if reports:
|
|
return "\n".join((f"Case: {result.case.display_name}", *reports))
|
|
return render_case_outcome(result)
|
|
|
|
|
|
def render_mapping_results(results: Sequence[CaseResult]) -> tuple[ReportSection, ...]:
|
|
blocks: Final = tuple(_render_result(result) for result in results)
|
|
return (ReportSection("Python/Rust unit-test mappings", blocks or ("No mapping cases selected",)),)
|