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)
 

Reply via email to