Reports API
The CSVValidationReport class generates CSV validation summary reports.
CSVValidationReport
Methods
generate_report(test_cases, design_spec, functional_spec, user_spec, traceability_matrix, test_results, output_path, validation_metadata, all_requirements, requirement_tests) -> Dict
Generate CSV validation summary report.
Parameters:
test_cases: List ofTestCaseobjectsdesign_spec: OptionalSpecificationobjectfunctional_spec: OptionalSpecificationobjectuser_spec: OptionalSpecificationobjecttraceability_matrix: OptionalTraceabilityMatrixobjecttest_results: Optional dictionary mapping test IDs to statusoutput_path: Optional path for JSON outputvalidation_metadata: OptionalValidationMetadatawith qualification info and approvalsall_requirements: Optional list of all requirementsrequirement_tests: Optional mapping of requirement IDs to test node IDs
Returns: Dictionary containing report data
write_report(output_path) -> None
Write report to JSON file.
Parameters:
output_path: Path for JSON output
write_markdown_report(output_path, evidence_items) -> None
Write report in Markdown format with optional evidence.
Parameters:
output_path: Path for Markdown outputevidence_items: Optional list ofEvidenceItemobjects
write_csv_report(output_path) -> None
Write report in CSV format.
Parameters:
output_path: Path for CSV output
write_pdf_report(output_path, evidence_items) -> None
Write report in PDF format with optional evidence.
Parameters:
output_path: Path for PDF outputevidence_items: Optional list ofEvidenceItemobjects
Requires: uv add --dev "pytest-gxp[pdf]"
Example
from pathlib import Path
from pytest_gxp.report import CSVValidationReport
from pytest_gxp.markdown_format import ValidationMetadata, ApprovalSignature, QualificationType
# Create validation metadata
metadata = ValidationMetadata(
qualification_type=QualificationType.OQ,
software_name="My Application",
software_version="1.0.0",
project_name="My Project",
validation_date="2024-01-01",
tester=ApprovalSignature(name="John Doe", role="Tester", date="2024-01-01"),
reviewer=ApprovalSignature(name="Jane Smith", role="Reviewer", date="2024-01-01"),
approver=ApprovalSignature(name="Bob Johnson", role="Approver", date="2024-01-01"),
)
# Generate report
report = CSVValidationReport()
report_data = report.generate_report(
test_cases,
design_spec,
functional_spec,
user_spec,
traceability_matrix,
test_results,
Path("csv_validation_report.json"),
validation_metadata=metadata,
)
# Write in multiple formats
report.write_report(Path("csv_validation_report.json"))
report.write_markdown_report(Path("csv_validation_report.md"), evidence_items=evidence_items)
report.write_csv_report(Path("csv_validation_report.csv"))
report.write_pdf_report(Path("csv_validation_report.pdf"), evidence_items=evidence_items)