From 32daff69be48681d870ec2ad797fdf65ea7d1075 Mon Sep 17 00:00:00 2001 From: Kai Chappell Date: Thu, 29 Jan 2026 17:59:45 +0000 Subject: [PATCH] Update reporting module public API --- src/py_dvt_ate/reporting/__init__.py | 59 ++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/src/py_dvt_ate/reporting/__init__.py b/src/py_dvt_ate/reporting/__init__.py index f73b6a2..ffc9d28 100644 --- a/src/py_dvt_ate/reporting/__init__.py +++ b/src/py_dvt_ate/reporting/__init__.py @@ -1,5 +1,58 @@ -"""Report generation. +"""Report generation module for py_dvt_ate. -Generates test reports from stored data in various formats -including PDF and HTML. +This module provides automated PDF report generation from test results. +Reports include test metadata, results tables, pass/fail status, and charts. + +Example usage: + >>> from uuid import UUID + >>> from py_dvt_ate.data.repository import SQLiteRepository + >>> from py_dvt_ate.reporting import ReportGenerator, ReportConfig + >>> + >>> # Create repository and generator + >>> repo = SQLiteRepository("./data/py_dvt_ate.db") + >>> config = ReportConfig(company_name="My Company", include_charts=True) + >>> generator = ReportGenerator(repo, config) + >>> + >>> # Generate PDF report + >>> run_id = UUID("12345678-1234-1234-1234-123456789abc") + >>> pdf_path = generator.generate(run_id) + >>> print(f"Report saved to: {pdf_path}") + >>> + >>> # Or get PDF as bytes (for streaming downloads) + >>> pdf_bytes = generator.generate_bytes(run_id) + +Classes: + ReportGenerator: Main class for generating PDF reports. + ReportConfig: Configuration options for report generation. + ReportData: Data container for report content. + +Exceptions: + ReportingError: Base exception for reporting errors. + ReportGenerationError: General report generation failures. + TemplateRenderError: HTML template rendering failures. + PDFConversionError: HTML to PDF conversion failures. + ChartGenerationError: Chart generation failures. """ + +from py_dvt_ate.reporting.exceptions import ( + ChartGenerationError, + PDFConversionError, + ReportGenerationError, + ReportingError, + TemplateRenderError, +) +from py_dvt_ate.reporting.generator import ReportGenerator +from py_dvt_ate.reporting.models import ReportConfig, ReportData + +__all__ = [ + # Main classes + "ReportGenerator", + "ReportConfig", + "ReportData", + # Exceptions + "ReportingError", + "ReportGenerationError", + "TemplateRenderError", + "PDFConversionError", + "ChartGenerationError", +]