TestSerializableTopLevel Class — langchain Architecture
Architecture documentation for the TestSerializableTopLevel class in test_secret_injection.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD a31f3612_4078_d3f5_ad7f_fe2a7591bf7b["TestSerializableTopLevel"] 269160d8_4621_760e_4f43_8de24a47bd7c["test_secret_injection.py"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|defined in| 269160d8_4621_760e_4f43_8de24a47bd7c 03d21ef4_b6c3_9e00_e36f_43032730fb4f["test_human_message_with_secret_in_content()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| 03d21ef4_b6c3_9e00_e36f_43032730fb4f e8e8cb35_e71b_6813_29a0_4de37a2164ee["test_human_message_with_secret_in_additional_kwargs()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| e8e8cb35_e71b_6813_29a0_4de37a2164ee 1b6d4ec2_494d_68cc_8ae5_89a2f8c537c9["test_human_message_with_secret_in_nested_additional_kwargs()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| 1b6d4ec2_494d_68cc_8ae5_89a2f8c537c9 d7ff3403_8ff6_55af_2efb_fa685621c16e["test_human_message_with_secret_in_list_in_additional_kwargs()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| d7ff3403_8ff6_55af_2efb_fa685621c16e 0e80db13_cada_6b3a_c651_113468da24aa["test_ai_message_with_secret_in_response_metadata()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| 0e80db13_cada_6b3a_c651_113468da24aa 4d254969_3d9b_fb82_cd95_4a81012e34e8["test_document_with_secret_in_metadata()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| 4d254969_3d9b_fb82_cd95_4a81012e34e8 78b969d0_b1f6_738f_ccc4_87d66c3063e4["test_nested_serializable_with_secret()"] a31f3612_4078_d3f5_ad7f_fe2a7591bf7b -->|method| 78b969d0_b1f6_738f_ccc4_87d66c3063e4
Relationship Graph
Source Code
libs/core/tests/unit_tests/load/test_secret_injection.py lines 65–128
class TestSerializableTopLevel:
"""Tests with `Serializable` objects at the top level."""
def test_human_message_with_secret_in_content(self) -> None:
"""`HumanMessage` with secret-like dict in `content`."""
msg = HumanMessage(
content=[
{"type": "text", "text": "Hello"},
{"type": "text", "text": MALICIOUS_SECRET_DICT},
]
)
_assert_no_secret_leak(msg)
def test_human_message_with_secret_in_additional_kwargs(self) -> None:
"""`HumanMessage` with secret-like dict in `additional_kwargs`."""
msg = HumanMessage(
content="Hello",
additional_kwargs={"data": MALICIOUS_SECRET_DICT},
)
_assert_no_secret_leak(msg)
def test_human_message_with_secret_in_nested_additional_kwargs(self) -> None:
"""`HumanMessage` with secret-like dict nested in `additional_kwargs`."""
msg = HumanMessage(
content="Hello",
additional_kwargs={"nested": {"deep": MALICIOUS_SECRET_DICT}},
)
_assert_no_secret_leak(msg)
def test_human_message_with_secret_in_list_in_additional_kwargs(self) -> None:
"""`HumanMessage` with secret-like dict in a list in `additional_kwargs`."""
msg = HumanMessage(
content="Hello",
additional_kwargs={"items": [MALICIOUS_SECRET_DICT]},
)
_assert_no_secret_leak(msg)
def test_ai_message_with_secret_in_response_metadata(self) -> None:
"""`AIMessage` with secret-like dict in respo`nse_metadata."""
msg = AIMessage(
content="Hello",
response_metadata={"data": MALICIOUS_SECRET_DICT},
)
_assert_no_secret_leak(msg)
def test_document_with_secret_in_metadata(self) -> None:
"""Document with secret-like dict in `metadata`."""
doc = Document(
page_content="Hello",
metadata={"data": MALICIOUS_SECRET_DICT},
)
_assert_no_secret_leak(doc)
def test_nested_serializable_with_secret(self) -> None:
"""`AIMessage` containing `dumpd(HumanMessage)` with secret in kwargs."""
inner = HumanMessage(
content="Hello",
additional_kwargs={"secret": MALICIOUS_SECRET_DICT},
)
outer = AIMessage(
content="Outer",
additional_kwargs={"nested": [dumpd(inner)]},
)
_assert_no_secret_leak(outer)
Source
Frequently Asked Questions
What is the TestSerializableTopLevel class?
TestSerializableTopLevel is a class in the langchain codebase, defined in libs/core/tests/unit_tests/load/test_secret_injection.py.
Where is TestSerializableTopLevel defined?
TestSerializableTopLevel is defined in libs/core/tests/unit_tests/load/test_secret_injection.py at line 65.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free