test_chat_history.py — langchain Source File
Architecture documentation for test_chat_history.py, a python file in the langchain codebase. 3 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 0aa2c76e_19d1_880f_1c8f_f8ec5d3eec65["test_chat_history.py"] cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"] 0aa2c76e_19d1_880f_1c8f_f8ec5d3eec65 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7 38c69580_3a92_51b1_7512_b0ccca9a0ef6["langchain_core.chat_history"] 0aa2c76e_19d1_880f_1c8f_f8ec5d3eec65 --> 38c69580_3a92_51b1_7512_b0ccca9a0ef6 d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"] 0aa2c76e_19d1_880f_1c8f_f8ec5d3eec65 --> d758344f_537f_649e_f467_b9d7442e86df style 0aa2c76e_19d1_880f_1c8f_f8ec5d3eec65 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
from collections.abc import Sequence
from langchain_core.chat_history import BaseChatMessageHistory
from langchain_core.messages import BaseMessage, HumanMessage
def test_add_message_implementation_only() -> None:
"""Test implementation of add_message only."""
class SampleChatHistory(BaseChatMessageHistory):
def __init__(self, *, store: list[BaseMessage]) -> None:
self.store = store
def add_message(self, message: BaseMessage) -> None:
"""Add a message to the store."""
self.store.append(message)
def clear(self) -> None:
"""Clear the store."""
raise NotImplementedError
store: list[BaseMessage] = []
chat_history = SampleChatHistory(store=store)
chat_history.add_message(HumanMessage(content="Hello"))
assert len(store) == 1
assert store[0] == HumanMessage(content="Hello")
chat_history.add_message(HumanMessage(content="World"))
assert len(store) == 2
assert store[1] == HumanMessage(content="World")
chat_history.add_messages(
[
HumanMessage(content="Hello"),
HumanMessage(content="World"),
]
)
assert len(store) == 4
assert store[2] == HumanMessage(content="Hello")
assert store[3] == HumanMessage(content="World")
def test_bulk_message_implementation_only() -> None:
"""Test that SampleChatHistory works as expected."""
store: list[BaseMessage] = []
class BulkAddHistory(BaseChatMessageHistory):
def __init__(self, *, store: list[BaseMessage]) -> None:
self.store = store
def add_messages(self, message: Sequence[BaseMessage]) -> None:
"""Add a message to the store."""
self.store.extend(message)
def clear(self) -> None:
"""Clear the store."""
raise NotImplementedError
chat_history = BulkAddHistory(store=store)
chat_history.add_message(HumanMessage(content="Hello"))
assert len(store) == 1
assert store[0] == HumanMessage(content="Hello")
chat_history.add_message(HumanMessage(content="World"))
assert len(store) == 2
assert store[1] == HumanMessage(content="World")
chat_history.add_messages(
[
HumanMessage(content="Hello"),
HumanMessage(content="World"),
]
)
assert len(store) == 4
assert store[2] == HumanMessage(content="Hello")
assert store[3] == HumanMessage(content="World")
async def test_async_interface() -> None:
"""Test async interface for BaseChatMessageHistory."""
class BulkAddHistory(BaseChatMessageHistory):
def __init__(self) -> None:
self.messages = []
def add_messages(self, message: Sequence[BaseMessage]) -> None:
"""Add a message to the store."""
self.messages.extend(message)
def clear(self) -> None:
"""Clear the store."""
self.messages.clear()
chat_history = BulkAddHistory()
await chat_history.aadd_messages(
[
HumanMessage(content="Hello"),
HumanMessage(content="World"),
]
)
assert await chat_history.aget_messages() == [
HumanMessage(content="Hello"),
HumanMessage(content="World"),
]
await chat_history.aadd_messages([HumanMessage(content="!")])
assert await chat_history.aget_messages() == [
HumanMessage(content="Hello"),
HumanMessage(content="World"),
HumanMessage(content="!"),
]
await chat_history.aclear()
assert await chat_history.aget_messages() == []
Domain
Subdomains
Functions
Classes
Dependencies
- collections.abc
- langchain_core.chat_history
- langchain_core.messages
Source
Frequently Asked Questions
What does test_chat_history.py do?
test_chat_history.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What functions are defined in test_chat_history.py?
test_chat_history.py defines 3 function(s): test_add_message_implementation_only, test_async_interface, test_bulk_message_implementation_only.
What does test_chat_history.py depend on?
test_chat_history.py imports 3 module(s): collections.abc, langchain_core.chat_history, langchain_core.messages.
Where is test_chat_history.py in the architecture?
test_chat_history.py is located at libs/core/tests/unit_tests/chat_history/test_chat_history.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/core/tests/unit_tests/chat_history).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free