Imago/tests/test_main_extended.py
Bruno Charest cc99fea20a
Some checks failed
CI / Lint & Format (push) Has been cancelled
CI / Tests (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
Add comprehensive test suite for image processing and related services
- Implement tests for database generator to ensure proper session handling.
- Create tests for EXIF extraction and conversion functions.
- Add tests for image-related endpoints, ensuring proper data retrieval and isolation between clients.
- Develop tests for OCR functionality, including language detection and text extraction.
- Introduce tests for the image processing pipeline, covering success and failure scenarios.
- Validate rate limiting functionality and ensure independent counters for different clients.
- Implement scraper tests to verify HTML content fetching and error handling.
- Add unit tests for various services, including storage and filename generation.
- Establish worker entry point for ARQ to handle background image processing tasks.
2026-02-24 11:22:10 -05:00

26 lines
912 B
Python

import pytest
from httpx import AsyncClient, ASGITransport
from app.main import app
from app.config import settings
@pytest.mark.asyncio
async def test_root_endpoint(async_client: AsyncClient):
response = await async_client.get("/")
assert response.status_code == 200
assert response.json()["app"] == settings.APP_NAME
@pytest.mark.asyncio
async def test_health_endpoint(async_client: AsyncClient):
response = await async_client.get("/health")
assert response.status_code == 200
assert "status" in response.json()
assert response.json()["status"] == "healthy"
@pytest.mark.asyncio
async def test_lifespan(async_client: AsyncClient):
# Testing that the lifespan context manager can be entered/exited
# ASGITransport already handles this if used correctly
async with ASGITransport(app=app) as transport:
# Just entering the context triggers lifespan
pass