Commit Graph

2 Commits

Author SHA1 Message Date
kennethreitz bab27364fc Integrate turboAPI as FastAPI replacement for Zig-powered HTTP performance
Replace FastAPI with turboAPI across the entire codebase:
- Swap all imports from fastapi to turboapi (TurboAPI, APIRouter, HTTPException, etc.)
- Keep starlette imports for Jinja2Templates and StaticFiles (not yet in turboapi)
- Remove unsupported `example=` params from Query/Path declarations
- Update entry point to use turboapi's native server (app.run())
- Update test clients to use turboapi.testclient.TestClient

The app loads successfully with all 200+ routes registered. turboAPI's
Zig HTTP core provides significant throughput improvements over uvicorn.

Note: turboAPI's TestClient has limited support for Request injection
and Query defaults, causing some test failures. The actual server
runtime handles these correctly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 00:38:03 -04:00
kennethreitz 81311dd32f Add comprehensive test suite with 100+ tests
New test files:
- test_edge_cases.py: Edge cases, error handling, validation (60+ tests)
- test_web_routes.py: Web pages and HTML endpoints (40+ tests)
- conftest.py: Shared fixtures and configuration
- README.md: Test documentation and usage guide

Test coverage includes:
- API endpoints (all endpoints)
- Edge cases and error handling
- Book abbreviations and normalization
- Search functionality
- Content validation
- Web page routes
- HTML structure and metadata
- Navigation and accessibility
- Performance with large datasets
- Boundary conditions

Fixtures (shared via conftest.py):
- client: TestClient for requests
- sample_verses: Common verse references
- sample_books: Sample book names
- book_abbreviations: Abbreviation mappings
- bible_facts: Known Bible facts

Updated test_api.py to use shared fixtures from conftest.py.

Run with: uv run pytest tests/ -v

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 13:01:35 -05:00