test_automatic_metadata.py — langchain Source File
Architecture documentation for test_automatic_metadata.py, a python file in the langchain codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR c4a7a5fd_df82_7309_6533_bab19b148f74["test_automatic_metadata.py"] 525a7d6f_f455_56e3_854a_c8a7da4a1417["unittest.mock"] c4a7a5fd_df82_7309_6533_bab19b148f74 --> 525a7d6f_f455_56e3_854a_c8a7da4a1417 d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"] c4a7a5fd_df82_7309_6533_bab19b148f74 --> d758344f_537f_649e_f467_b9d7442e86df 552bc7bf_c1ac_965d_e157_ee750ab1993c["langchain_core.messages.tool"] c4a7a5fd_df82_7309_6533_bab19b148f74 --> 552bc7bf_c1ac_965d_e157_ee750ab1993c ac2a9b92_4484_491e_1b48_ec85e71e1d58["langchain_core.outputs"] c4a7a5fd_df82_7309_6533_bab19b148f74 --> ac2a9b92_4484_491e_1b48_ec85e71e1d58 3f5d18d2_1a69_3c79_f735_ae6e90c95a79["langchain_core.tracers.core"] c4a7a5fd_df82_7309_6533_bab19b148f74 --> 3f5d18d2_1a69_3c79_f735_ae6e90c95a79 17e2fb09_6b0f_338f_1319_77bc43602969["langchain_core.tracers.schemas"] c4a7a5fd_df82_7309_6533_bab19b148f74 --> 17e2fb09_6b0f_338f_1319_77bc43602969 style c4a7a5fd_df82_7309_6533_bab19b148f74 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Test automatic tool call count storage in tracers."""
from __future__ import annotations
from unittest.mock import MagicMock
from langchain_core.messages import AIMessage
from langchain_core.messages.tool import ToolCall
from langchain_core.outputs import ChatGeneration, LLMResult
from langchain_core.tracers.core import _TracerCore
from langchain_core.tracers.schemas import Run
class MockTracerCore(_TracerCore):
"""Mock tracer core for testing LLM run completion."""
def __init__(self) -> None:
super().__init__()
def _persist_run(self, run: Run) -> None:
"""Mock implementation of _persist_run."""
def test_complete_llm_run_automatically_stores_tool_call_count() -> None:
"""Test that `_complete_llm_run` automatically stores tool call count."""
tracer = MockTracerCore()
run = MagicMock(spec=Run)
run.id = "test-llm-run-id"
run.run_type = "llm"
run.extra = {}
run.outputs = {}
run.events = []
run.end_time = None
run.inputs = {}
tracer.run_map[str(run.id)] = run
tool_calls = [
ToolCall(name="search", args={"query": "test"}, id="call_1"),
ToolCall(name="calculator", args={"expression": "2+2"}, id="call_2"),
]
message = AIMessage(content="Test", tool_calls=tool_calls)
generation = ChatGeneration(message=message)
response = LLMResult(generations=[[generation]])
# Complete the LLM run (this should trigger automatic metadata storage)
completed_run = tracer._complete_llm_run(response=response, run_id=run.id)
assert "tool_call_count" in completed_run.extra
assert completed_run.extra["tool_call_count"] == 2
def test_complete_llm_run_handles_no_tool_calls() -> None:
"""Test that `_complete_llm_run` handles runs with no tool calls gracefully."""
tracer = MockTracerCore()
run = MagicMock(spec=Run)
run.id = "test-llm-run-id-no-tools"
run.run_type = "llm"
// ... (96 more lines)
Domain
Subdomains
Functions
Classes
Dependencies
- langchain_core.messages
- langchain_core.messages.tool
- langchain_core.outputs
- langchain_core.tracers.core
- langchain_core.tracers.schemas
- unittest.mock
Source
Frequently Asked Questions
What does test_automatic_metadata.py do?
test_automatic_metadata.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in test_automatic_metadata.py?
test_automatic_metadata.py defines 5 function(s): test_complete_llm_run_automatically_stores_tool_call_count, test_complete_llm_run_counts_tool_calls_from_multiple_generations, test_complete_llm_run_handles_empty_generations, test_complete_llm_run_handles_no_tool_calls, test_complete_llm_run_handles_null_tool_calls.
What does test_automatic_metadata.py depend on?
test_automatic_metadata.py imports 6 module(s): langchain_core.messages, langchain_core.messages.tool, langchain_core.outputs, langchain_core.tracers.core, langchain_core.tracers.schemas, unittest.mock.
Where is test_automatic_metadata.py in the architecture?
test_automatic_metadata.py is located at libs/core/tests/unit_tests/tracers/test_automatic_metadata.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/tests/unit_tests/tracers).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free