Skip to content

Development and Testing

pH7x Systems edited this page Jul 18, 2026 · 4 revisions

Development and Testing

Setup

git clone https://github.com/ph7x-Systems/stillsite.git
cd stillsite
python -m venv .venv && source .venv/bin/activate
pip install --group dev
for pkg in packages/* apps/admin; do pip install -e "$pkg"; done

The gates (run before any PR)

ruff check . && ruff format --check .   # lint + formatting
mypy                                    # strict, whole repo
pytest                                  # full suite

CI runs these plus the PostgreSQL conformance suite, the example build, link checking, secret scanning, W3C markup validation and the axe accessibility gate. main is fully protected — every change lands via PR with all required checks green, linear history, squash merges.

Test layout (tests/)

Suite Covers
test_models, test_pages, test_media content models, translation states, checksums
test_storage, test_factory the storage conformance suite — parameterized over every engine
test_validation every rule and the engine
test_builder, test_output_integrity, test_targets determinism, URL tree, head contract, feeds, targets
test_parity, test_theme_conformance the reference theme against its ground rules
test_cli, test_scaffold the CLI flows end to end
test_admin_* the admin: app factory, auth/CSRF/rate limiting, dashboard, articles, pages, demo export
test_docs anti-drift: documentation is checked against the code

Conventions: tests exercise real flows (no mocked internals); the PostgreSQL leg runs when STILLSITE_POSTGRES_URL is set and is visibly skipped otherwise; documented facts get anti-drift checks in test_docs.py.

Contributing

See CONTRIBUTING.md. Short version: everything in English; small PRs with tests; documentation (repo docs and this wiki) updated in the same change when commands, config or models change; reversible decisions recorded as ADRs.

Clone this wiki locally