#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")/.." # Only new, disposable containers; no production connection settings are consumed. export COMPOSE_PROJECT_NAME="btcdata-archive-test-$$" compose=(docker compose -f tests/integration/compose.yaml) trap '"${compose[@]}" down -v' EXIT "${compose[@]}" up -d export TEST_PGHOST=127.0.0.1 TEST_PGPORT=15432 TEST_PGUSER=postgres TEST_PGPASSWORD=disposable-test export TEST_S3_ENDPOINT_URL=http://127.0.0.1:19000 export TEST_S3_ACCESS_KEY=disposable-test TEST_S3_SECRET_KEY=disposable-test-secret python - <<'PY' import os, time import boto3, psycopg from botocore.config import Config for attempt in range(90): try: with psycopg.connect(host=os.environ['TEST_PGHOST'], port=os.environ['TEST_PGPORT'], user='postgres', password='disposable-test', dbname='postgres', connect_timeout=2): pass boto3.client('s3', endpoint_url=os.environ['TEST_S3_ENDPOINT_URL'], aws_access_key_id='disposable-test', aws_secret_access_key='disposable-test-secret', region_name='us-east-1', config=Config(connect_timeout=2, read_timeout=2, retries={'max_attempts': 0}, s3={'addressing_style': 'path'})).list_buckets() break except Exception: time.sleep(2) else: raise SystemExit('disposable PostgreSQL/RustFS did not become ready') PY python -m pytest -q tests/integration