The metadata form is the first section of the QA panel and acts as the header of your entire report. Every field you fill in here is written directly into the INFORMACIÓN GENERAL block at the top of the exported PDF, giving readers immediate context about what application was tested, by whom, and against which requirements. Completing this section accurately before adding any test steps ensures a professional, traceable report from the start.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Beliagal/qa-report-automation/llms.txt
Use this file to discover all available pages before exploring further.
Metadata Fields
Each field in the grid maps to a key in theReportData.metadata dictionary. The six primary fields are arranged in a two-row, three-column grid, followed by a full-width Dependencias entry and a free-text Resumen Ejecutivo area below.
The name of the application under test. Pre-populated with
"Valoraclick" by default from ReportData.reset_data(). Update this if you are testing a different product or module.The full name of the QA analyst performing the test execution. This value appears in the Tester cell of the PDF information table alongside Aplicación.
The test execution date in
DD/MM/YYYY format. The field enforces this format at the keystroke level — only digits (0–9) and the / separator are accepted. Strings longer than 10 characters are also rejected automatically. On export, validar_fecha() from logic.py performs a final regex check (^\d{2}/\d{2}/\d{4}$) and a datetime.strptime parse; if either fails, the export is halted with a warning dialog.The User Story ID or name that this test execution covers (e.g.,
HU-042). Useful for linking the report back to your project management tool.A comma-separated list of requirement references that the test validates (e.g.,
REQ-101, REQ-102). This field is stored in ReportData.metadata under the key "Requisitos:".The version number of the application build under test (e.g.,
2.7.0). Appears alongside Fecha in the second row of the PDF information table.A free-text description of any external services or components the application depends on (e.g.,
Auth Service v3, Payment Gateway API). This field spans the full width of the metadata grid — it is stored separately in ReportData.metadata under the key "dep" and synced via _sync() on export.A multiline free-text area (
CTkTextbox, 80 px tall) placed below the metadata grid. Use it to summarise the scope, objectives, and overall outcome of the test session. Its value is stored in ReportData.metadata under the key "resumen" and rendered in the Resumen row of the PDF information table via pdf.multi_cell().Date Validation in Detail
Date input is protected by two layers:-
Keystroke filter (
_validate_date_input) — registered as a Tkintervalidatecommand(vcmd) on theFechaentry widget. On every keypress it checks that the entire pending value (%P) contains only the characters0123456789/and is no longer than 10 characters. Any character that does not match is silently rejected before it reaches the field. -
Export-time validation (
validar_fecha) — called inside_on_export()using a full regex match (^\d{2}/\d{2}/\d{4}$) followed bydatetime.strptime(fecha_str, '%d/%m/%Y'). If either check fails — for example if the day or month is out of range — a warning dialog is shown and the PDF is not generated.
Metadata Sync on Export
None of the metadata widget values are pushed toReportData continuously. Instead, the _sync() method is called at the moment you click EXPORTAR PDF. It iterates over all registered self.entries widgets, reads their current values, and writes them into self.report_data.metadata. The dep and resumen fields are handled separately because they come from self.ent_dep and self.txt_resumen respectively rather than the main entries dictionary.
Every metadata field is bound to a
<KeyRelease> event that calls _update_log(). This means the real-time preview panel (the CTkTextbox log at the bottom of the window) refreshes instantly as you type — you can see exactly how your metadata will appear in the report without leaving the form.