| # GUI Testing for Document Redaction App | |
| This directory contains tests specifically for verifying that the GUI application (`app.py`) loads correctly. | |
| ## Test Files | |
| ### `test_gui_only.py` | |
| A standalone script that tests only the GUI functionality. This is useful for: | |
| - Quick verification that the Gradio interface loads without errors | |
| - CI/CD pipelines where you want to test GUI separately from CLI functionality | |
| - Development testing when you only want to check GUI components | |
| **Usage:** | |
| Option 1 - Manual activation: | |
| ```bash | |
| conda activate redaction | |
| cd test | |
| python test_gui_only.py | |
| ``` | |
| Option 2 - Using helper scripts (Windows): | |
| ```bash | |
| cd test | |
| # For Command Prompt: | |
| run_gui_test.bat | |
| # For PowerShell: | |
| .\run_gui_test.ps1 | |
| ``` | |
| ### `test.py` (Updated) | |
| The main test suite now includes both CLI and GUI tests. The GUI tests are in the `TestGUIApp` class. | |
| **Usage:** | |
| Option 1 - Manual activation: | |
| ```bash | |
| conda activate redaction | |
| cd test | |
| python test.py | |
| ``` | |
| Option 2 - Using helper scripts (Windows): | |
| ```bash | |
| cd test | |
| # For Command Prompt: | |
| run_gui_test.bat | |
| # For PowerShell: | |
| .\run_gui_test.ps1 | |
| ``` | |
| ## What the GUI Tests Check | |
| 1. **App Import and Initialization** (`test_app_import_and_initialization`) | |
| - Verifies that `app.py` can be imported without errors | |
| - Checks that the Gradio `app` object is created successfully | |
| - Ensures the app is a proper Gradio Blocks instance | |
| 2. **App Launch in Headless Mode** (`test_app_launch_headless`) | |
| - Tests that the app can be launched without opening a browser | |
| - Verifies the Gradio server starts successfully | |
| - Uses threading to prevent blocking the test execution | |
| 3. **Configuration Loading** (`test_app_configuration_loading`) | |
| - Verifies that configuration variables are loaded correctly | |
| - Checks key settings like server port, file size limits, language settings | |
| - Ensures the app has access to all required configuration | |
| ## Test Requirements | |
| - **Conda environment 'redaction' must be activated** before running tests | |
| - Python environment with all dependencies installed | |
| - Access to the `tools.config` module | |
| - Gradio and related GUI dependencies (including `gradio_image_annotation`) | |
| - The `app.py` file in the parent directory | |
| ### Prerequisites | |
| Before running the GUI tests, ensure you have activated the conda environment: | |
| ```bash | |
| conda activate redaction | |
| ``` | |
| The `gradio_image_annotation` package is already installed in the 'redaction' environment. | |
| ## Expected Behavior | |
| - All tests should pass if the GUI loads correctly | |
| - Tests will fail if there are import errors, missing dependencies, or configuration issues | |
| - The headless launch test may take up to 10 seconds to complete | |
| ## Troubleshooting | |
| If tests fail: | |
| 1. Check that all dependencies are installed (`pip install -r requirements.txt`) | |
| 2. Verify that `app.py` exists in the parent directory | |
| 3. Ensure configuration files are properly set up | |
| 4. Check for any missing environment variables or configuration issues | |
| ## Integration with CI/CD | |
| These tests are designed to run in headless environments and are suitable for: | |
| - GitHub Actions | |
| - Jenkins pipelines | |
| - Docker containers | |
| - Any automated testing environment | |
| The tests do not require a display or browser to be available. | |