The QA tool automatically persists the full state of your test session to a local JSON file every time a test step is successfully committed. This means that if the application closes unexpectedly — due to a power cut, a system crash, or an accidental window close — you will not lose any steps that had already been added. When you relaunch the tool, it detects the saved file and restores your entire session: metadata, dependencies, executive summary, and all test steps, exactly as you left them.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.
The Session File
The session is stored in a file namedsesion_testing.json. It is created and maintained by _save_session() in gui.py and read back by _load_session() on startup. The file is opened with encoding="utf-8" and written with indent=4 for human readability.
File Location
| Run mode | File location |
|---|---|
Compiled .exe | Same directory as the executable |
Source (python main.py) | Project root directory (alongside gui.py, models.py, etc.) |
self.session_file = "sesion_testing.json" — a relative path, so it resolves to the current working directory at runtime.
Session File Structure
The JSON file contains two top-level keys:"meta" for the ReportData.metadata dictionary and "pruebas" for the list of step dictionaries. Below is a representative example:
"meta" keys match those used in ReportData.metadata exactly — including the trailing colon on field names such as "Aplicación:" — so they map back into the entry widgets without any transformation. "dep" and "resumen" are stored as plain keys without a colon, handled separately in both _sync() and _load_session().
How Auto-Save Works
Every successful call to_on_add() — which occurs whenever AÑADIR PASO is clicked with a non-empty action field — triggers _save_session() immediately after the step is appended:
_save_session(), _sync() is called first to flush the current values of all metadata widgets into ReportData.metadata before serialising:
How Session Restore Works
_load_session() is called at the end of __init__(), after the UI has been fully constructed. It checks for the session file, reads it, and repopulates every widget:
_update_log() is called so the real-time preview panel immediately reflects all the previously saved steps with their green/red colour-coding. No user action is required — the session appears as if the application had never been closed.
Starting a Fresh Session
To discard the current session and begin a new test cycle, click RESET TOTAL in the top bar. The tool presents a confirmation dialog before taking any action. If you confirm, it:- Calls
ReportData.reset_data()to clearmetadataback to defaults and emptypruebas. - Deletes
sesion_testing.jsonfrom disk usingos.remove(). - Clears all entry widgets and the executive summary textbox.
- Resets the Fecha field to today’s date.
- Calls
_update_log()to clear the preview panel.
When running the compiled
.exe, sesion_testing.json is created in the same folder as the executable. When running from source with python main.py, it is created in the project root directory — the folder that contains gui.py, models.py, and logic.py. Ensure the user account running the application has write permission to that directory.