branch: externals/vecdb commit de9685bd1f8c406be562a398bf3c0e23f4e91f75 Author: Andrew Hyatt <ahy...@gmail.com> Commit: Andrew Hyatt <ahy...@gmail.com>
Add Postgres to integration test --- vecdb-integration-test.el | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/vecdb-integration-test.el b/vecdb-integration-test.el index ed5829a740..2517746500 100644 --- a/vecdb-integration-test.el +++ b/vecdb-integration-test.el @@ -1,6 +1,6 @@ ;;; vecdb-integration-test.el --- Integration tests for vecdb -*- lexical-binding: t; -*- -;; Copyright (C) 2025 Google LLC +;; Copyright (c) 2025 Free Software Foundation, Inc. ;; ;; Author: Andrew Hyatt <ahy...@gmail.com> ;; Maintainer: Andrew Hyatt <ahy...@gmail.com> @@ -33,6 +33,7 @@ ;; CHROMA_DATABASE (optional, defaults to "default") ;; For Qdrant: QDRANT_URL (e.g., "http://localhost:6333") ;; QDRANT_API_KEY (e.g., "your-api-key") +;; For Postgres: PSQL_DB (should exist already), PSQL_USERNAME, PSQL_PASSWORD (optional) ;; 3. Execute from the command line: ;; emacs -batch -l ert -l vecdb-integration-test.el -f ert-run-tests-batch-and-exit ;; @@ -75,7 +76,18 @@ Skips tests if no providers are configured." (make-vecdb-qdrant-provider :url qdrant-url :api-key qdrant-api-key) - (warn "QDRANT_URL is set, but QDRANT_API_KEY is missing. Qdrant provider will not be configured."))))))) + (warn "QDRANT_URL is set, but QDRANT_API_KEY is missing. Qdrant provider will not be configured."))))) + + ;; Postgres Configuration + (let ((postgres-db (getenv "PSQL_DB")) + (postgres-username (getenv "PSQL_USERNAME")) + (postgres-password (getenv "PSQL_PASSWORD"))) + + (when postgres-username + (make-psql-vecdb-provider + :database postgres-db + :username postgres-username + :password postgres-password))))) (progn (ert-skip "No vector database provider environment variables set. (CHROMA_URL or QDRANT_URL must be set)") @@ -154,8 +166,8 @@ The collection is created before BODY and deleted afterwards." (vecdb-delete current-provider collection))))) (vecdb-test--deftest-for-providers vecdb-test-create-exists-delete-collection - #'vecdb-test-create-exists-delete-collection-body - "Test `vecdb-create', `vecdb-exists', and `vecdb-delete'.") + #'vecdb-test-create-exists-delete-collection-body + "Test `vecdb-create', `vecdb-exists', and `vecdb-delete'.") (defun vecdb-test-upsert-get-delete-items-body (current-provider) "Core logic for testing upsert and get items." @@ -179,8 +191,8 @@ The collection is created before BODY and deleted afterwards." (should-not (vecdb-get-item current-provider current-collection (vecdb-item-id item))))))) (vecdb-test--deftest-for-providers vecdb-test-upsert-get-delete-items - #'vecdb-test-upsert-get-delete-items-body - "Test `vecdb-upsert-items', `vecdb-get-item' and `vecdb-delete-items'.") + #'vecdb-test-upsert-get-delete-items-body + "Test `vecdb-upsert-items', `vecdb-get-item' and `vecdb-delete-items'.") (defun vecdb-test-search-by-vector-body (current-provider) "Core logic for testing search by vector." @@ -206,9 +218,9 @@ The collection is created before BODY and deleted afterwards." items)))))) (vecdb-test--deftest-for-providers - vecdb-test-search-by-vector - #'vecdb-test-search-by-vector-body - "Test `vecdb-search-by-vector'.") + vecdb-test-search-by-vector + #'vecdb-test-search-by-vector-body + "Test `vecdb-search-by-vector'.") (provide 'vecdb-integration-test)