Phase 1: Critical bug fixes - Fix missing os/sys imports in pdf_remediation.py (line 427 crash) - Install Python dependencies (venv with 11 packages) - Create runtime directories (uploads, results, .cache) - Configure environment (.env from .env.example) Phase 2: Production features - Add authentication module (auth.php) with API key support - Integrate auth into api.php with CORS headers update - Add structured logging framework (logger_config.py) with rotation - Add retry helper (retry_helper.py) with exponential backoff - Apply retry decorators to AI API calls (Claude and Google Vision) - Create comprehensive test suite (31 tests, 34% coverage) * Unit tests for checker and remediation * Integration tests for API and authentication * pytest configuration with coverage reporting Documentation: - Add requirements specifications (BRS, FRS, SAD) to docs_req/ - Add PDF-UA-1 technical background - Add sample accessibility report All tests passing (31/31). Ready for production deployment. Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
61 lines
1.4 KiB
Python
61 lines
1.4 KiB
Python
"""
|
|
Pytest configuration and fixtures for PDF Accessibility Checker tests
|
|
"""
|
|
|
|
import pytest
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
|
|
# Add parent directory to path for imports
|
|
sys.path.insert(0, str(Path(__file__).parent.parent))
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_good_pdf():
|
|
"""Path to sample good PDF file"""
|
|
return Path("Test_files/sample_good.pdf")
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_poor_pdf():
|
|
"""Path to sample poor PDF file"""
|
|
return Path("Test_files/sample_poor.pdf")
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_output_dir(tmp_path):
|
|
"""Temporary directory for test outputs"""
|
|
output_dir = tmp_path / "output"
|
|
output_dir.mkdir()
|
|
return output_dir
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_api_responses():
|
|
"""Mock API responses for testing without actual API calls"""
|
|
return {
|
|
'claude': {
|
|
'type': 'informational',
|
|
'alt_text': 'A test image showing sample content',
|
|
'has_text': False,
|
|
'decorative': False
|
|
},
|
|
'google_vision': {
|
|
'has_text': False,
|
|
'text_content': None,
|
|
'labels': ['Document', 'Text', 'Paper'],
|
|
'objects': []
|
|
}
|
|
}
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_pdf_metadata():
|
|
"""Sample PDF metadata for testing"""
|
|
return {
|
|
'title': 'Test Document',
|
|
'author': 'Test Author',
|
|
'subject': 'Test Subject',
|
|
'language': 'en-US'
|
|
}
|