test_graph.py — langchain Source File
Architecture documentation for test_graph.py, a python file in the langchain codebase. 18 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 972d89eb_abd0_b940_67b4_eff75c775ace["test_graph.py"] 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 525a7d6f_f455_56e3_854a_c8a7da4a1417["unittest.mock"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 525a7d6f_f455_56e3_854a_c8a7da4a1417 0b794afa_fd3d_a810_77fd_ed00bf90e394["packaging"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 0b794afa_fd3d_a810_77fd_ed00bf90e394 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7["pydantic"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7 66d6194f_d8c1_55b6_f522_311fdad57877["syrupy.assertion"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 66d6194f_d8c1_55b6_f522_311fdad57877 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 91721f45_4909_e489_8c1f_084f8bd87145 ba43b74d_3099_7e1c_aac3_cf594720469e["langchain_core.language_models"] 972d89eb_abd0_b940_67b4_eff75c775ace --> ba43b74d_3099_7e1c_aac3_cf594720469e d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"] 972d89eb_abd0_b940_67b4_eff75c775ace --> d758344f_537f_649e_f467_b9d7442e86df e2506531_acbb_2ada_3335_6574849e4389["langchain_core.output_parsers.list"] 972d89eb_abd0_b940_67b4_eff75c775ace --> e2506531_acbb_2ada_3335_6574849e4389 52f47dc8_0343_2bf7_c7f6_1df7a48ca84e["langchain_core.output_parsers.string"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 52f47dc8_0343_2bf7_c7f6_1df7a48ca84e 6ea8ed8c_4ab1_5e30_e53f_6219182045af["langchain_core.output_parsers.xml"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 6ea8ed8c_4ab1_5e30_e53f_6219182045af c17bcf07_a2ef_b992_448f_5088d46a1e79["langchain_core.prompts.prompt"] 972d89eb_abd0_b940_67b4_eff75c775ace --> c17bcf07_a2ef_b992_448f_5088d46a1e79 2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c["langchain_core.runnables"] 972d89eb_abd0_b940_67b4_eff75c775ace --> 2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c c764ccae_0d75_abec_7c23_6d5d1949a7ba["langchain_core.runnables.base"] 972d89eb_abd0_b940_67b4_eff75c775ace --> c764ccae_0d75_abec_7c23_6d5d1949a7ba style 972d89eb_abd0_b940_67b4_eff75c775ace fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
from typing import Any
from unittest.mock import MagicMock, patch
from packaging import version
from pydantic import BaseModel
from syrupy.assertion import SnapshotAssertion
from typing_extensions import override
from langchain_core.language_models import FakeListLLM
from langchain_core.messages import BaseMessage
from langchain_core.output_parsers.list import CommaSeparatedListOutputParser
from langchain_core.output_parsers.string import StrOutputParser
from langchain_core.output_parsers.xml import XMLOutputParser
from langchain_core.prompts.prompt import PromptTemplate
from langchain_core.runnables import RunnableConfig
from langchain_core.runnables.base import Runnable
from langchain_core.runnables.graph import Edge, Graph, MermaidDrawMethod, Node
from langchain_core.runnables.graph_mermaid import (
_render_mermaid_using_api,
_to_safe_id,
draw_mermaid_png,
)
from langchain_core.utils.pydantic import PYDANTIC_VERSION
from tests.unit_tests.pydantic_utils import _normalize_schema
def test_graph_single_runnable(snapshot: SnapshotAssertion) -> None:
runnable = StrOutputParser()
graph = StrOutputParser().get_graph()
first_node = graph.first_node()
assert first_node is not None
assert first_node.data.model_json_schema() == runnable.get_input_jsonschema() # type: ignore[union-attr]
last_node = graph.last_node()
assert last_node is not None
assert last_node.data.model_json_schema() == runnable.get_output_jsonschema() # type: ignore[union-attr]
assert len(graph.nodes) == 3
assert len(graph.edges) == 2
assert graph.edges[0].source == first_node.id
assert graph.edges[1].target == last_node.id
assert graph.draw_ascii() == snapshot(name="ascii")
assert graph.draw_mermaid() == snapshot(name="mermaid")
graph.trim_first_node()
first_node = graph.first_node()
assert first_node is not None
assert first_node.data == runnable
graph.trim_last_node()
last_node = graph.last_node()
assert last_node is not None
assert last_node.data == runnable
def test_trim(snapshot: SnapshotAssertion) -> None:
runnable = StrOutputParser()
class Schema(BaseModel):
a: int
graph = Graph()
// ... (660 more lines)
Domain
Subdomains
Functions
- test_double_nested_subgraph_mermaid()
- test_draw_mermaid_png_function_base_url()
- test_graph_draw_mermaid_png_base_url()
- test_graph_mermaid_duplicate_nodes()
- test_graph_mermaid_frontmatter_config()
- test_graph_mermaid_special_chars()
- test_graph_mermaid_to_safe_id()
- test_graph_sequence()
- test_graph_sequence_map()
- test_graph_single_runnable()
- test_mermaid_base_url_custom()
- test_mermaid_base_url_default()
- test_mermaid_bgcolor_hex_not_encoded()
- test_mermaid_bgcolor_url_encoding()
- test_parallel_subgraph_mermaid()
- test_runnable_get_graph_with_invalid_input_type()
- test_runnable_get_graph_with_invalid_output_type()
- test_single_node_subgraph_mermaid()
- test_trim()
- test_trim_multi_edge()
- test_triple_nested_subgraph_mermaid()
Dependencies
- langchain_core.language_models
- langchain_core.messages
- langchain_core.output_parsers.list
- langchain_core.output_parsers.string
- langchain_core.output_parsers.xml
- langchain_core.prompts.prompt
- langchain_core.runnables
- langchain_core.runnables.base
- langchain_core.runnables.graph
- langchain_core.runnables.graph_mermaid
- langchain_core.utils.pydantic
- packaging
- pydantic
- syrupy.assertion
- tests.unit_tests.pydantic_utils
- typing
- typing_extensions
- unittest.mock
Source
Frequently Asked Questions
What does test_graph.py do?
test_graph.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_graph.py?
test_graph.py defines 21 function(s): test_double_nested_subgraph_mermaid, test_draw_mermaid_png_function_base_url, test_graph_draw_mermaid_png_base_url, test_graph_mermaid_duplicate_nodes, test_graph_mermaid_frontmatter_config, test_graph_mermaid_special_chars, test_graph_mermaid_to_safe_id, test_graph_sequence, test_graph_sequence_map, test_graph_single_runnable, and 11 more.
What does test_graph.py depend on?
test_graph.py imports 18 module(s): langchain_core.language_models, langchain_core.messages, langchain_core.output_parsers.list, langchain_core.output_parsers.string, langchain_core.output_parsers.xml, langchain_core.prompts.prompt, langchain_core.runnables, langchain_core.runnables.base, and 10 more.
Where is test_graph.py in the architecture?
test_graph.py is located at libs/core/tests/unit_tests/runnables/test_graph.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/tests/unit_tests/runnables).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free