69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
"""
|
|
Test configuration and fixtures for document-service tests.
|
|
"""
|
|
|
|
import pytest
|
|
import os
|
|
from fastapi.testclient import TestClient
|
|
from unittest.mock import Mock, patch
|
|
from moto import mock_aws
|
|
import boto3
|
|
|
|
from app.main import app
|
|
|
|
# Test data paths
|
|
FIXTURES_DIR = os.path.join(os.path.dirname(__file__), "fixtures")
|
|
|
|
@pytest.fixture
|
|
def test_client():
|
|
"""Create a test client with auth bypass."""
|
|
return TestClient(app)
|
|
|
|
@pytest.fixture
|
|
def sample_org_id():
|
|
"""Sample organization ID for testing."""
|
|
return "test-org-123"
|
|
|
|
@pytest.fixture
|
|
def sample_document_id():
|
|
"""Sample document ID for testing."""
|
|
return "test-doc-456"
|
|
|
|
@pytest.fixture
|
|
def test_pdf_files():
|
|
"""Paths to test PDF files."""
|
|
return {
|
|
"simple_form": os.path.join(FIXTURES_DIR, "simple_form.pdf"),
|
|
"complex_form": os.path.join(FIXTURES_DIR, "complex_form.pdf"),
|
|
"no_form": os.path.join(FIXTURES_DIR, "no_form.pdf"),
|
|
"large_form": os.path.join(FIXTURES_DIR, "large_form.pdf"),
|
|
}
|
|
|
|
@pytest.fixture
|
|
def mock_s3_client():
|
|
"""Create a mock S3 client for testing."""
|
|
with mock_aws():
|
|
client = boto3.client(
|
|
"s3",
|
|
region_name="us-east-1",
|
|
aws_access_key_id="minioadmin",
|
|
aws_secret_access_key="minioadmin",
|
|
)
|
|
# Create test bucket
|
|
client.create_bucket(Bucket="document-bucket")
|
|
yield client
|
|
|
|
@pytest.fixture
|
|
def auth_bypass_middleware():
|
|
"""Fixture to bypass auth middleware in tests."""
|
|
def bypass_auth(request):
|
|
request.state.org_id = "test-org-123"
|
|
return request
|
|
|
|
return bypass_auth
|
|
|
|
@pytest.fixture
|
|
def sample_auth_token():
|
|
"""Sample auth token for testing."""
|
|
return "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJvcmdfaWQiOiJ0ZXN0LW9yZy0xMjMifQ.test"
|