Spaces:
Sleeping
Sleeping
| #!/usr/bin/env bash | |
| set -e | |
| export CHROMA_PORT=8000 | |
| function cleanup { | |
| docker compose -f docker-compose.test.yml down --rmi local --volumes | |
| rm server.htpasswd .chroma_env | |
| } | |
| function setup_auth { | |
| local auth_type="$1" | |
| case "$auth_type" in | |
| basic) | |
| docker run --rm --entrypoint htpasswd httpd:2 -Bbn admin admin > server.htpasswd | |
| cat <<EOF > .chroma_env | |
| CHROMA_SERVER_AUTH_CREDENTIALS_FILE="/chroma/server.htpasswd" | |
| CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER="chromadb.auth.providers.HtpasswdFileServerAuthCredentialsProvider" | |
| CHROMA_SERVER_AUTH_PROVIDER="chromadb.auth.basic.BasicAuthServerProvider" | |
| EOF | |
| ;; | |
| token) | |
| cat <<EOF > .chroma_env | |
| CHROMA_SERVER_AUTH_CREDENTIALS="test-token" | |
| CHROMA_SERVER_AUTH_TOKEN_TRANSPORT_HEADER="AUTHORIZATION" | |
| CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER="chromadb.auth.token.TokenConfigServerAuthCredentialsProvider" | |
| CHROMA_SERVER_AUTH_PROVIDER="chromadb.auth.token.TokenAuthServerProvider" | |
| EOF | |
| ;; | |
| xtoken) | |
| cat <<EOF > .chroma_env | |
| CHROMA_SERVER_AUTH_CREDENTIALS="test-token" | |
| CHROMA_SERVER_AUTH_TOKEN_TRANSPORT_HEADER="X_CHROMA_TOKEN" | |
| CHROMA_SERVER_AUTH_CREDENTIALS_PROVIDER="chromadb.auth.token.TokenConfigServerAuthCredentialsProvider" | |
| CHROMA_SERVER_AUTH_PROVIDER="chromadb.auth.token.TokenAuthServerProvider" | |
| EOF | |
| ;; | |
| *) | |
| echo "Unknown auth type: $auth_type" | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| trap cleanup EXIT | |
| docker compose -f docker-compose.test.yml up --build -d | |
| export CHROMA_INTEGRATION_TEST_ONLY=1 | |
| export CHROMA_API_IMPL=chromadb.api.fastapi.FastAPI | |
| export CHROMA_SERVER_HOST=localhost | |
| export CHROMA_SERVER_HTTP_PORT=8000 | |
| export CHROMA_SERVER_NOFILE=65535 | |
| echo testing: python -m pytest "$@" | |
| python -m pytest "$@" | |
| cd clients/js | |
| # moved off of yarn to npm to fix issues with jackspeak/cliui/string-width versions #1314 | |
| npm install | |
| npm run test:run | |
| docker compose down | |
| cd ../.. | |
| for auth_type in basic token xtoken; do | |
| echo "Testing $auth_type auth" | |
| setup_auth "$auth_type" | |
| cd clients/js | |
| docker compose --env-file ../../.chroma_env -f ../../docker-compose.test-auth.yml up --build -d | |
| yarn test:run-auth-"$auth_type" | |
| cd ../.. | |
| docker compose down | |
| done | |