0e3311df8e
- Enhance .gitignore with comprehensive Python patterns - Improve README with better setup and testing instructions - Add test infrastructure: * Test requirements file * Environment setup script * Test runner script * Comprehensive test suite * Coverage configuration
92 lines
2.0 KiB
Markdown
92 lines
2.0 KiB
Markdown
# 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 |