Home / File/ test_utils.py — langchain Source File

test_utils.py — langchain Source File

Architecture documentation for test_utils.py, a python file in the langchain codebase. 12 imports, 0 dependents.

File python CoreAbstractions MessageSchema 12 imports 139 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4["test_utils.py"]
  66c6348c_7716_027c_42d7_71449bc64eeb["base64"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 66c6348c_7716_027c_42d7_71449bc64eeb
  7025b240_fdc3_cf68_b72f_f41dac94566b["json"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 7025b240_fdc3_cf68_b72f_f41dac94566b
  6d7cdba5_8e52_34b5_6742_57caf6500c80["math"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 6d7cdba5_8e52_34b5_6742_57caf6500c80
  67ec3255_645e_8b6e_1eff_1eb3c648ed95["re"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 67ec3255_645e_8b6e_1eff_1eb3c648ed95
  cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  120e2591_3e15_b895_72b6_cb26195e40a6["pytest"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 120e2591_3e15_b895_72b6_cb26195e40a6
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 91721f45_4909_e489_8c1f_084f8bd87145
  833aeadc_c3e9_bfcf_db07_ecb37ad3ba24["langchain_core.language_models.fake_chat_models"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 833aeadc_c3e9_bfcf_db07_ecb37ad3ba24
  d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> d758344f_537f_649e_f467_b9d7442e86df
  5563046c_094e_e4ab_c007_ae813975fd4d["langchain_core.messages.utils"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 5563046c_094e_e4ab_c007_ae813975fd4d
  43d88577_548b_2248_b01b_7987bae85dcc["langchain_core.tools"]
  ea3f8d89_f44b_6738_3cb9_a740a73cfca4 --> 43d88577_548b_2248_b01b_7987bae85dcc
  style ea3f8d89_f44b_6738_3cb9_a740a73cfca4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import base64
import json
import math
import re
from collections.abc import Callable, Sequence
from typing import Any, TypedDict

import pytest
from typing_extensions import NotRequired, override

from langchain_core.language_models.fake_chat_models import FakeChatModel
from langchain_core.messages import (
    AIMessage,
    BaseMessage,
    ChatMessage,
    FunctionMessage,
    HumanMessage,
    SystemMessage,
    ToolCall,
    ToolMessage,
)
from langchain_core.messages.utils import (
    MessageLikeRepresentation,
    convert_to_messages,
    convert_to_openai_messages,
    count_tokens_approximately,
    filter_messages,
    get_buffer_string,
    merge_message_runs,
    trim_messages,
)
from langchain_core.tools import BaseTool, tool


@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
def test_merge_message_runs_str(msg_cls: type[BaseMessage]) -> None:
    messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
    messages_model_copy = [m.model_copy(deep=True) for m in messages]
    expected = [msg_cls("foo\nbar\nbaz")]
    actual = merge_message_runs(messages)
    assert actual == expected
    assert messages == messages_model_copy


@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
def test_merge_message_runs_str_with_specified_separator(
    msg_cls: type[BaseMessage],
) -> None:
    messages = [msg_cls("foo"), msg_cls("bar"), msg_cls("baz")]
    messages_model_copy = [m.model_copy(deep=True) for m in messages]
    expected = [msg_cls("foo<sep>bar<sep>baz")]
    actual = merge_message_runs(messages, chunk_separator="<sep>")
    assert actual == expected
    assert messages == messages_model_copy


@pytest.mark.parametrize("msg_cls", [HumanMessage, AIMessage, SystemMessage])
def test_merge_message_runs_str_without_separator(
    msg_cls: type[BaseMessage],
) -> None:
// ... (2901 more lines)

Subdomains

Functions

Dependencies

  • base64
  • collections.abc
  • json
  • langchain_core.language_models.fake_chat_models
  • langchain_core.messages
  • langchain_core.messages.utils
  • langchain_core.tools
  • math
  • pytest
  • re
  • typing
  • typing_extensions

Frequently Asked Questions

What does test_utils.py do?
test_utils.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_utils.py?
test_utils.py defines 139 function(s): create_base64_image, create_image_data, dummy_token_counter, test_convert_to_messages, test_convert_to_messages_openai_refusal, test_convert_to_openai_messages_anthropic, test_convert_to_openai_messages_bedrock_converse_image, test_convert_to_openai_messages_developer, test_convert_to_openai_messages_empty_list, test_convert_to_openai_messages_empty_message, and 129 more.
What does test_utils.py depend on?
test_utils.py imports 12 module(s): base64, collections.abc, json, langchain_core.language_models.fake_chat_models, langchain_core.messages, langchain_core.messages.utils, langchain_core.tools, math, and 4 more.
Where is test_utils.py in the architecture?
test_utils.py is located at libs/core/tests/unit_tests/messages/test_utils.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/core/tests/unit_tests/messages).

Analyze Your Own Codebase

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

Try Supermodel Free