Tests / test (==2.12.2) (push) Canceled after 0s
Tests / test (==2.14.3) (push) Canceled after 0s
Tests / test (>=3.3,<4) (push) Canceled after 0s
Tests / test (>=4,<5) (push) Canceled after 0s
Tests / test-postgres (==2.12.2) (push) Canceled after 0s
Tests / test-postgres (>=4,<5) (push) Canceled after 0s
Tests / canary (push) Canceled after 0s
The sink ships with a JSONB variant and is documented for asyncpg, but the suite only ever exercised SQLite. The embeddings work will need pgvector, so this adds a local Postgres stack and a way to run the database tests on it, here and in CI. - docker-compose.yml: ffb-postgres (pgvector/pgvector:pg16) on a private network, published on 127.0.0.1 only, with an init script that adds the vector extension to the test database and template1 - Makefile: pg-up/pg-down/pg-reset/pg-logs/pg-psql, test, test-pg, test-all, lint; .env is generated from .env.example with a random password, and FFB_TEST_DATABASE_URL from the environment wins over it - tests: a db_url fixture parametrized over sqlite and postgres. The postgres leg skips unless FFB_TEST_DATABASE_URL is set, and creates a uniquely named database per test (with vector) that is dropped after. The DatabaseSink factories in the events, retention, correlation, soft-error and instrumentation tests now use it, so their 38 database tests run on both. The missing-events-table test accepts either backend's error. New tests check isolation and that vector works. - asyncpg and pgvector added to the dev and test extras - CI: a test-postgres job on FastMCP 2.12.2 and 4.x with a pgvector service container, failing if the Postgres cases skip - CONTRIBUTING: how to run the suite against Postgres
32 lines
903 B
YAML
32 lines
903 B
YAML
# Postgres + pgvector for running the test suite against a real server.
|
|
# Test-only: nothing here serves HTTP, so there is no caddy network.
|
|
# The port is published on 127.0.0.1 only, for pytest running on the host.
|
|
|
|
services:
|
|
ffb-postgres:
|
|
image: ${FFB_PG_IMAGE:-pgvector/pgvector:pg16}
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: ${FFB_PG_USER}
|
|
POSTGRES_PASSWORD: ${FFB_PG_PASSWORD}
|
|
POSTGRES_DB: ${FFB_PG_DB}
|
|
ports:
|
|
- "127.0.0.1:${FFB_PG_PORT:-55433}:5432"
|
|
volumes:
|
|
- ffb-postgres-data:/var/lib/postgresql/data
|
|
- ./docker/postgres-init:/docker-entrypoint-initdb.d:ro
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\""]
|
|
interval: 2s
|
|
timeout: 3s
|
|
retries: 30
|
|
start_period: 5s
|
|
networks:
|
|
- internal
|
|
|
|
volumes:
|
|
ffb-postgres-data:
|
|
|
|
networks:
|
|
internal:
|