Home / Class/ TestIPValidation Class — langchain Architecture

TestIPValidation Class — langchain Architecture

Architecture documentation for the TestIPValidation class in test_ssrf_protection.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  5d0af313_84be_a251_2294_d136a0904196["TestIPValidation"]
  809833dd_a5e7_1f87_e9af_5c61581d9739["test_ssrf_protection.py"]
  5d0af313_84be_a251_2294_d136a0904196 -->|defined in| 809833dd_a5e7_1f87_e9af_5c61581d9739
  6113ef34_50ac_63da_01ec_388207586f25["test_is_private_ip_ipv4()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 6113ef34_50ac_63da_01ec_388207586f25
  ac041e96_75b0_0b78_ac1f_5394bac54aaf["test_is_private_ip_ipv6()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| ac041e96_75b0_0b78_ac1f_5394bac54aaf
  bbe5e698_f1cd_203f_34c1_8f8af9285c35["test_is_private_ip_public()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| bbe5e698_f1cd_203f_34c1_8f8af9285c35
  58a219fb_3deb_7152_97fd_445ddfb48112["test_is_private_ip_invalid()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 58a219fb_3deb_7152_97fd_445ddfb48112
  689f9941_3427_4eb2_b461_6313f0794bb8["test_is_cloud_metadata_ips()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 689f9941_3427_4eb2_b461_6313f0794bb8
  307aacb8_12a0_d587_5d94_f3fa23af9091["test_is_cloud_metadata_hostnames()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 307aacb8_12a0_d587_5d94_f3fa23af9091
  521167f2_0dfd_1660_b090_a183a40137c9["test_is_cloud_metadata_safe()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 521167f2_0dfd_1660_b090_a183a40137c9
  42d51a54_0488_6ca2_dadd_86775ca1809a["test_is_localhost_hostnames()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 42d51a54_0488_6ca2_dadd_86775ca1809a
  eb01006c_f7b1_2a80_9433_1e2c4b57a317["test_is_localhost_ips()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| eb01006c_f7b1_2a80_9433_1e2c4b57a317
  51d3ee76_35ac_d953_9ed5_90334120b547["test_is_localhost_safe()"]
  5d0af313_84be_a251_2294_d136a0904196 -->|method| 51d3ee76_35ac_d953_9ed5_90334120b547

Relationship Graph

Source Code

libs/core/tests/unit_tests/test_ssrf_protection.py lines 19–82

class TestIPValidation:
    """Tests for IP address validation functions."""

    def test_is_private_ip_ipv4(self) -> None:
        """Test private IPv4 address detection."""
        assert is_private_ip("10.0.0.1") is True
        assert is_private_ip("172.16.0.1") is True
        assert is_private_ip("192.168.1.1") is True
        assert is_private_ip("127.0.0.1") is True
        assert is_private_ip("169.254.169.254") is True
        assert is_private_ip("0.0.0.1") is True

    def test_is_private_ip_ipv6(self) -> None:
        """Test private IPv6 address detection."""
        assert is_private_ip("::1") is True  # Loopback
        assert is_private_ip("fc00::1") is True  # Unique local
        assert is_private_ip("fe80::1") is True  # Link-local
        assert is_private_ip("ff00::1") is True  # Multicast

    def test_is_private_ip_public(self) -> None:
        """Test that public IPs are not flagged as private."""
        assert is_private_ip("8.8.8.8") is False
        assert is_private_ip("1.1.1.1") is False
        assert is_private_ip("151.101.1.140") is False

    def test_is_private_ip_invalid(self) -> None:
        """Test handling of invalid IP addresses."""
        assert is_private_ip("not-an-ip") is False
        assert is_private_ip("999.999.999.999") is False

    def test_is_cloud_metadata_ips(self) -> None:
        """Test cloud metadata IP detection."""
        assert is_cloud_metadata("example.com", "169.254.169.254") is True
        assert is_cloud_metadata("example.com", "169.254.170.2") is True
        assert is_cloud_metadata("example.com", "100.100.100.200") is True

    def test_is_cloud_metadata_hostnames(self) -> None:
        """Test cloud metadata hostname detection."""
        assert is_cloud_metadata("metadata.google.internal") is True
        assert is_cloud_metadata("metadata") is True
        assert is_cloud_metadata("instance-data") is True
        assert is_cloud_metadata("METADATA.GOOGLE.INTERNAL") is True  # Case insensitive

    def test_is_cloud_metadata_safe(self) -> None:
        """Test that normal URLs are not flagged as cloud metadata."""
        assert is_cloud_metadata("example.com", "8.8.8.8") is False
        assert is_cloud_metadata("google.com") is False

    def test_is_localhost_hostnames(self) -> None:
        """Test localhost hostname detection."""
        assert is_localhost("localhost") is True
        assert is_localhost("LOCALHOST") is True
        assert is_localhost("localhost.localdomain") is True

    def test_is_localhost_ips(self) -> None:
        """Test localhost IP detection."""
        assert is_localhost("example.com", "127.0.0.1") is True
        assert is_localhost("example.com", "::1") is True
        assert is_localhost("example.com", "0.0.0.0") is True

    def test_is_localhost_safe(self) -> None:
        """Test that normal hosts are not flagged as localhost."""
        assert is_localhost("example.com", "8.8.8.8") is False
        assert is_localhost("google.com") is False

Frequently Asked Questions

What is the TestIPValidation class?
TestIPValidation is a class in the langchain codebase, defined in libs/core/tests/unit_tests/test_ssrf_protection.py.
Where is TestIPValidation defined?
TestIPValidation is defined in libs/core/tests/unit_tests/test_ssrf_protection.py at line 19.

Analyze Your Own Codebase

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

Try Supermodel Free