Home / Function/ test_add_documents_with_existing_ids_async() — langchain Function Reference

test_add_documents_with_existing_ids_async() — langchain Function Reference

Architecture documentation for the test_add_documents_with_existing_ids_async() function in vectorstores.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  1d5a9bf1_438a_6dbd_d716_a692fd48d186["test_add_documents_with_existing_ids_async()"]
  dd52cc1a_cb37_0117_3b1e_0889a7228307["VectorStoreIntegrationTests"]
  1d5a9bf1_438a_6dbd_d716_a692fd48d186 -->|defined in| dd52cc1a_cb37_0117_3b1e_0889a7228307
  26edf390_ce50_b6e2_04c9_788f2cd6faba["has_get_by_ids()"]
  1d5a9bf1_438a_6dbd_d716_a692fd48d186 -->|calls| 26edf390_ce50_b6e2_04c9_788f2cd6faba
  ec7f22d1_3913_61c4_fadb_bb7d144c0fb3["_sort_by_id()"]
  1d5a9bf1_438a_6dbd_d716_a692fd48d186 -->|calls| ec7f22d1_3913_61c4_fadb_bb7d144c0fb3
  style 1d5a9bf1_438a_6dbd_d716_a692fd48d186 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/standard-tests/langchain_tests/integration_tests/vectorstores.py lines 796–842

    async def test_add_documents_with_existing_ids_async(
        self, vectorstore: VectorStore
    ) -> None:
        """Test that `add_documents` with existing IDs is idempotent.

        ??? note "Troubleshooting"

            If this test fails, check that `get_by_ids` is implemented and returns
            documents in the same order as the IDs passed in.

            This test also verifies that:

            1. IDs specified in the `Document.id` field are assigned when adding
                documents.
            2. If some documents include IDs and others don't string IDs are generated
                for the latter.

            !!! note
                `get_by_ids` was added to the `VectorStore` interface in
                `langchain-core` version 0.2.11. If difficult to implement, this
                test can be skipped by setting the `has_get_by_ids` property to
                `False`.

                ```python
                @property
                def has_get_by_ids(self) -> bool:
                    return False
                ```
        """
        if not self.has_async:
            pytest.skip("Async tests not supported.")

        if not self.has_get_by_ids:
            pytest.skip("get_by_ids not implemented.")

        documents = [
            Document(id="foo", page_content="foo", metadata={"id": 1}),
            Document(page_content="bar", metadata={"id": 2}),
        ]
        ids = await vectorstore.aadd_documents(documents)
        assert "foo" in ids
        assert _sort_by_id(await vectorstore.aget_by_ids(ids)) == _sort_by_id(
            [
                Document(page_content="foo", metadata={"id": 1}, id="foo"),
                Document(page_content="bar", metadata={"id": 2}, id=ids[1]),
            ]
        )

Domain

Subdomains

Frequently Asked Questions

What does test_add_documents_with_existing_ids_async() do?
test_add_documents_with_existing_ids_async() is a function in the langchain codebase, defined in libs/standard-tests/langchain_tests/integration_tests/vectorstores.py.
Where is test_add_documents_with_existing_ids_async() defined?
test_add_documents_with_existing_ids_async() is defined in libs/standard-tests/langchain_tests/integration_tests/vectorstores.py at line 796.
What does test_add_documents_with_existing_ids_async() call?
test_add_documents_with_existing_ids_async() calls 2 function(s): _sort_by_id, has_get_by_ids.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free