# Testing This directory contains tests for the OIDC validator application. ## Setup ### Using the setup script (recommended) 1. Run the setup script: ```bash ./setup_test_env.sh ``` This will create a virtual environment and install all dependencies. ### Manual setup 1. Create and activate a virtual environment: ```bash python3 -m venv venv source venv/bin/activate ``` 2. Install application dependencies: ```bash pip install -r requirements.txt ``` 3. Install test dependencies: ```bash pip install -r requirements-test.txt ``` ## Running Tests ### Using the test runner script (recommended) ```bash ./run_tests.sh ``` This will automatically activate the virtual environment and run the tests. ### Manual execution 1. Activate the virtual environment: ```bash source venv/bin/activate ``` 2. Run tests: ```bash # Run all tests pytest # Run tests with coverage (excluding tests directory) pytest --cov=. --cov-config=.coveragerc # Run tests with verbose output pytest -v ``` 3. Deactivate the virtual environment when done: ```bash deactivate ``` ## Coverage Reports The test suite generates coverage reports to help you understand how well the code is tested: - Terminal coverage report is displayed after running tests - HTML coverage report is generated in the `htmlcov/` directory - The coverage configuration excludes the tests directory itself from coverage statistics ## Test Structure - `conftest.py`: Contains pytest fixtures shared across tests - `test_main.py`: Tests for the main FastAPI application endpoints - `test_token_validation.py`: Tests for token validation and refresh logic - `test_utils.py`: Tests for utility functions ## Test Coverage The tests cover: - Health check endpoint - Token validation endpoint - Token refresh endpoint - Client configuration endpoint - Utility functions for OIDC operations - Error handling for various failure scenarios - Edge cases and invalid inputs