# DB-backed pytest lane (R6 S3b): an ephemeral Postgres + the test image, wired together so the # `db` fixture (tests/conftest.py) has a real database. The whole thing is throwaway — the pg data # lives in tmpfs (RAM) and nothing is persisted. The pure-logic lane still runs WITHOUT this file # (plain `docker run … python -m pytest` — DB tests skip when no Postgres is reachable). # # docker compose -f backend/docker-compose.test.yml up --build --abort-on-container-exit \ # --exit-code-from test # docker compose -f backend/docker-compose.test.yml down -v services: testdb: image: postgres:16-alpine environment: POSTGRES_USER: siftlode POSTGRES_PASSWORD: siftlode POSTGRES_DB: siftlode_test tmpfs: - /var/lib/postgresql/data # ephemeral + fast; the schema is rebuilt per run healthcheck: test: ["CMD-SHELL", "pg_isready -U siftlode -d siftlode_test"] interval: 1s timeout: 3s retries: 30 test: build: context: . dockerfile: Dockerfile.test depends_on: testdb: condition: service_healthy environment: DATABASE_URL: postgresql+psycopg://siftlode:siftlode@testdb:5432/siftlode_test volumes: - ./:/app working_dir: /app command: python -m pytest