RagLeap
Tests

Tests: ragleap-vectorstores

Test files: 7. Test functions: 73. Described by their authors (docstring or @DisplayName): 19. Where there is no description, the line shows the test name in words and says so.

Latest result: ragleap-vectorstores-tests (3.10) passed 48 passed, 30 skipped, 0 failed CI job ragleap-vectorstores-tests (3.12) passed 48 passed, 30 skipped, 0 failed CI job

test_chroma_backend.py — 11 tests 11 passed, 0 failed, 0 skipped

Tests for ChromaBackend. Uses a real local chromadb PersistentClient against a temp directory (Chroma has no meaningful "fake" - it's already fully local/embedded, so there's no live-credentials gap to skip around, unlike QdrantBackend/PineconeBackend/WeaviateBackend's tests).

  • test_requires_persist_directory passed
    Requires persist directory (no description in the source; shown from the name)
  • test_insert_and_search_dense_shape passed
    Insert and search dense shape (no description in the source; shown from the name)
  • test_search_dense_single_key_filter passed
    Search dense single key filter (no description in the source; shown from the name)
  • test_search_dense_multi_key_filter passed
    Regression guard for the real Chroma constraint (live-verified): a
  • test_search_dense_empty_embedding_returns_empty passed
    Search dense empty embedding returns empty (no description in the source; shown from the name)
  • test_search_sparse_not_supported passed
    Search sparse not supported (no description in the source; shown from the name)
  • test_search_hybrid_falls_back_to_dense passed
    Search hybrid falls back to dense (no description in the source; shown from the name)
  • test_supports_sparse_is_false passed
    Supports sparse is false (no description in the source; shown from the name)
  • test_list_documents passed
    List documents (no description in the source; shown from the name)
  • test_get_document_filename passed
    Get document filename (no description in the source; shown from the name)
  • test_delete_document_removes_registry_entry_and_vectors passed
    Delete document removes registry entry and vectors (no description in the source; shown from the name)
test_datetime_compat.py — 2 tests 2 passed, 0 failed, 0 skipped

Always-run regression tests (no live infrastructure needed) for datetime handling across every backend.

  • test_no_deprecated_or_py311_only_datetime_apis passed
    No deprecated or py311 only datetime apis (no description in the source; shown from the name)
  • test_opensearch_insert_document_runs_without_a_live_server passed
    Opensearch insert document runs without a live server (no description in the source; shown from the name)
test_lancedb_backend.py — 13 tests 13 passed, 0 failed, 0 skipped

Tests for LanceDBBackend. Uses a real local embedded LanceDB database against a temp directory (LanceDB, like Chroma, is already fully local/embedded - no live-credentials gap to skip around).

  • test_requires_uri passed
    Requires uri (no description in the source; shown from the name)
  • test_insert_and_search_dense_shape passed
    Insert and search dense shape (no description in the source; shown from the name)
  • test_search_dense_single_key_filter passed
    Search dense single key filter (no description in the source; shown from the name)
  • test_search_dense_multi_key_filter passed
    LanceDB's where= accepts a native SQL boolean expression, so
  • test_search_dense_empty_embedding_returns_empty passed
    Search dense empty embedding returns empty (no description in the source; shown from the name)
  • test_search_sparse_not_supported passed
    Search sparse not supported (no description in the source; shown from the name)
  • test_search_hybrid_falls_back_to_dense passed
    Search hybrid falls back to dense (no description in the source; shown from the name)
  • test_supports_sparse_is_false passed
    Supports sparse is false (no description in the source; shown from the name)
  • test_list_documents passed
    List documents (no description in the source; shown from the name)
  • test_get_document_filename passed
    Get document filename (no description in the source; shown from the name)
  • test_delete_document_removes_registry_entry_and_vectors passed
    Delete document removes registry entry and vectors (no description in the source; shown from the name)
  • test_insert_chunk_upserts_not_duplicates passed
    Regression guard for the real merge_insert-based upsert path
  • test_init_schema_idempotent passed
    Calling init_schema again (e.g. on reconnect) should reopen the
test_opensearch_backend.py — 16 tests 0 passed, 0 failed, 16 skipped

Tests for OpenSearchBackend. Uses a real OpenSearch instance with the opensearch-knn plugin - unlike Chroma/LanceDB (embedded, always available) and RedisBackend's dev-container-assumed-present convention, this backend now runs on the developer's local machine (moved off the shared VPS after a real CPU-spike incident, see the vectorstores handoff), so these tests gate on OPENSEARCH_TEST_URL and skip cleanly (not fail) when it isn't set - same pattern as the Upstash tests gating on UPSTASH_VECTOR_REST_URL/TOKEN, rather than Redis's dev-container assumption that a server is always present.

  • test_requires_opensearch_url skipped
    Requires opensearch url (no description in the source; shown from the name)
  • test_insert_and_search_dense_shape skipped
    Insert and search dense shape (no description in the source; shown from the name)
  • test_search_dense_exact_match_score_near_one skipped
    Regression guard for the real live-verified score formula: for
  • test_search_dense_metadata_filter_arbitrary_keys skipped
    Genuine capability difference from Redis: OpenSearch's query DSL
  • test_search_dense_document_id_filter skipped
    Search dense document id filter (no description in the source; shown from the name)
  • test_search_dense_unsupported_filter_key_narrows_to_zero skipped
    Unlike RedisBackend, which silently ignores unrecognized filter
  • test_search_dense_empty_embedding_returns_empty skipped
    Search dense empty embedding returns empty (no description in the source; shown from the name)
  • test_search_sparse_not_supported skipped
    Search sparse not supported (no description in the source; shown from the name)
  • test_search_hybrid_falls_back_to_dense skipped
    Search hybrid falls back to dense (no description in the source; shown from the name)
  • test_supports_sparse_is_false skipped
    Supports sparse is false (no description in the source; shown from the name)
  • test_list_documents skipped
    List documents (no description in the source; shown from the name)
  • test_get_document_filename skipped
    Get document filename (no description in the source; shown from the name)
  • test_delete_document_removes_registry_entry_and_vectors skipped
    Delete document removes registry entry and vectors (no description in the source; shown from the name)
  • test_insert_chunk_upserts_not_duplicates skipped
    Regression guard: indexing with the same deterministic id
  • test_init_schema_idempotent skipped
    Calling init_schema again (e.g. on reconnect) should reuse the
  • test_init_schema_dimension_mismatch_raises skipped
    Regression guard for a real check this backend adds beyond
test_redis_backend.py — 16 tests 16 passed, 0 failed, 0 skipped

Tests for RedisBackend. Uses a real Redis Stack instance (RediSearch module loaded) running in an isolated dev container on port 6380 - separate from any production Redis used for caching/Celery. Each test gets its own random index_name/key_prefix so parallel/repeated runs never collide, and the index is dropped in teardown.

  • test_requires_redis_url passed
    Requires redis url (no description in the source; shown from the name)
  • test_missing_search_module_raises passed
    Regression guard for the real gotcha encountered live: production
  • test_insert_and_search_dense_shape passed
    Insert and search dense shape (no description in the source; shown from the name)
  • test_search_dense_document_id_filter passed
    Search dense document id filter (no description in the source; shown from the name)
  • test_document_id_with_hyphens_is_escaped passed
    Regression guard for the real TAG-escaping gotcha (live-verified):
  • test_search_dense_unsupported_filter_keys_are_ignored_not_errored passed
    Honest documented limitation: RediSearch requires predeclared
  • test_search_dense_empty_embedding_returns_empty passed
    Search dense empty embedding returns empty (no description in the source; shown from the name)
  • test_search_sparse_not_supported passed
    Search sparse not supported (no description in the source; shown from the name)
  • test_search_hybrid_falls_back_to_dense passed
    Search hybrid falls back to dense (no description in the source; shown from the name)
  • test_supports_sparse_is_false passed
    Supports sparse is false (no description in the source; shown from the name)
  • test_list_documents passed
    List documents (no description in the source; shown from the name)
  • test_get_document_filename passed
    Get document filename (no description in the source; shown from the name)
  • test_delete_document_removes_registry_entry_and_vectors passed
    Delete document removes registry entry and vectors (no description in the source; shown from the name)
  • test_insert_chunk_upserts_not_duplicates passed
    Regression guard: HSET on the same deterministic key
  • test_init_schema_idempotent passed
    Calling init_schema again (e.g. on reconnect) should reuse the
  • test_default_key_prefix_isolates_different_indexes passed
    Regression guard for a real bug, live-verified: key_prefix used to
test_smoke.py — 1 tests 1 passed, 0 failed, 0 skipped

Smoke test - the package imports cleanly and VectorBackend is always re-exported regardless of which optional backend extras are installed.

  • test_import passed
    Import (no description in the source; shown from the name)
test_upstash_backend.py — 14 tests 0 passed, 0 failed, 14 skipped

Tests for UpstashBackend. Uses a real Upstash Vector index (managed cloud service - no local/embedded mode exists, so unlike Chroma/LanceDB this needs real credentials). Reads UPSTASH_VECTOR_REST_URL and UPSTASH_VECTOR_REST_TOKEN from the environment - tests skip cleanly if these aren't set, rather than failing confusingly.

  • test_requires_url_and_token skipped
    Requires url and token (no description in the source; shown from the name)
  • test_init_schema_rejects_dimension_mismatch skipped
    Init schema rejects dimension mismatch (no description in the source; shown from the name)
  • test_insert_and_search_dense_shape skipped
    Insert and search dense shape (no description in the source; shown from the name)
  • test_search_dense_single_key_filter skipped
    Search dense single key filter (no description in the source; shown from the name)
  • test_search_dense_multi_key_filter skipped
    Upstash's filter= is a real SQL-like string, so multi-key filters
  • test_search_dense_empty_embedding_returns_empty skipped
    Search dense empty embedding returns empty (no description in the source; shown from the name)
  • test_search_sparse_not_supported skipped
    Search sparse not supported (no description in the source; shown from the name)
  • test_search_hybrid_falls_back_to_dense skipped
    Search hybrid falls back to dense (no description in the source; shown from the name)
  • test_supports_sparse_is_false skipped
    Supports sparse is false (no description in the source; shown from the name)
  • test_list_documents skipped
    List documents (no description in the source; shown from the name)
  • test_get_document_filename skipped
    Get document filename (no description in the source; shown from the name)
  • test_delete_document_removes_registry_entry_and_vectors skipped
    Delete document removes registry entry and vectors (no description in the source; shown from the name)
  • test_insert_chunk_upserts_not_duplicates skipped
    Regression guard: re-inserting the same document_id/chunk_index
  • test_init_schema_idempotent skipped
    Calling init_schema again should reconnect and re-verify

Compiled by script from the public repository, its CI logs and the GitHub API. To correct something, open an issue.

All tests