pdf-accessibility/tests/conftest.py
Vadym Samoilenko 112719b2c5 Add Docker stack, frontend redesign, and visual page inspector fix
- Redesigned frontend with Outfit/Figtree typography, coral accent palette,
  noise texture, glassmorphism header, and staggered animations
- Split monolithic index.html into modular JS (app, api, upload, batch,
  results, page-viewer, utils) and extracted CSS
- Fixed worker.py to generate page images for Visual Page Inspector
- Added Docker Compose stack (web, worker, redis, postgres)
- Added batch upload, HTML report export, rate limiting, and Redis queue
- Extended test suite with checker, remediation, worker, and DB tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 18:12:44 +00:00

69 lines
1.8 KiB
Python

"""
Pytest configuration and fixtures for PDF Accessibility Checker tests
"""
import pytest
import sys
import os
from pathlib import Path
from unittest.mock import MagicMock
# Add parent directory to path for imports
sys.path.insert(0, str(Path(__file__).parent.parent))
# ── Mock unavailable Docker-only dependencies before any test imports ──
# redis and psycopg2 are only available inside Docker containers.
# We mock them at sys.modules level so imports succeed during test collection.
for _mod in ("redis", "psycopg2", "psycopg2.extras"):
if _mod not in sys.modules:
sys.modules[_mod] = MagicMock()
@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'
}