with one click
turbo-test
// Run TurboAPI tests. Use when running tests, checking for regressions, or verifying changes.
// Run TurboAPI tests. Use when running tests, checking for regressions, or verifying changes.
Run performance benchmarks for TurboAPI. Use when testing performance, checking for regressions, or comparing against FastAPI.
Build the TurboAPI Zig native backend. Use when the turbonet extension needs to be recompiled, after changing Zig source files, or when seeing "Native core not available".
Scaffold Zig-native database routes using pg.zig + TurboPG. Use when adding database-backed CRUD endpoints, custom SQL queries (pgvector, JSONB, full-text search, JOINs, CTEs), or standalone TurboPG usage.
Use TurboPG for standalone Postgres queries. Use when writing database code outside of TurboAPI routes, running migrations, seeding data, or building scripts that talk to Postgres.
Scaffold a new TurboAPI route with handler, model, and tests. Use when adding a new API endpoint, creating a new route, or scaffolding CRUD for a resource.
| name | turbo-test |
| description | Run TurboAPI tests. Use when running tests, checking for regressions, or verifying changes. |
| disable-model-invocation | true |
| argument-hint | ["file-or-pattern"] |
Determine scope: If $ARGUMENTS is provided, run only matching tests. Otherwise run the full suite.
Run tests:
# Full suite
uv run --python 3.14t python -m pytest tests/ -p no:anchorpy \
--deselect tests/test_fastapi_parity.py::TestWebSocket -v
# Specific file
uv run --python 3.14t python -m pytest tests/$ARGUMENTS -v
# Specific test
uv run --python 3.14t python -m pytest tests/ -k "$ARGUMENTS" -v
cd zig && zig build test
cd zig && zig build test --fuzz
TestWebSocket) — pre-existing failure, always deselect-p no:anchorpy| File | What it tests |
|---|---|
test_fastapi_parity.py | FastAPI compatibility (275+ tests) |
test_security_audit_fixes.py | Security fixes (rate limiting, CORS, etc.) |
test_annotated_depends.py | Annotated[Type, Depends(...)] pattern |
test_perf_callnoargs_tupleabi.py | Handler classification + fast paths |
test_query_and_headers.py | Query params, headers, body parsing |
uv run --python 3.14t python -c "
from turboapi import TurboAPI
app = TurboAPI()
@app.get('/')
def hello(): return {'ok': True}
from turboapi.testclient import TestClient
c = TestClient(app)
assert c.get('/').status_code == 200
print('OK')
"