@@ -1604,3 +1604,50 @@ def test_end_model_invoke_span_non_langfuse_no_extra_attributes(mock_span, monke
16041604 "gen_ai.client.inference.operation.details" ,
16051605 attributes = {"gen_ai.output.messages" : expected_output },
16061606 )
1607+
1608+
1609+ class TestIsLangfuse :
1610+ """Tests for the is_langfuse property."""
1611+
1612+ def test_is_langfuse_with_otel_exporter_otlp_endpoint (self , monkeypatch ):
1613+ """Test is_langfuse returns True when OTEL_EXPORTER_OTLP_ENDPOINT contains langfuse."""
1614+ monkeypatch .setenv ("OTEL_EXPORTER_OTLP_ENDPOINT" , "https://us.cloud.langfuse.com" )
1615+ tracer = Tracer ()
1616+ assert tracer .is_langfuse is True
1617+
1618+ def test_is_langfuse_with_otel_exporter_otlp_traces_endpoint (self , monkeypatch ):
1619+ """Test is_langfuse returns True when OTEL_EXPORTER_OTLP_TRACES_ENDPOINT contains langfuse."""
1620+ monkeypatch .setenv (
1621+ "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" , "https://us.cloud.langfuse.com/api/public/otel/v1/traces"
1622+ )
1623+ tracer = Tracer ()
1624+ assert tracer .is_langfuse is True
1625+
1626+ def test_is_langfuse_with_langfuse_base_url (self , monkeypatch ):
1627+ """Test is_langfuse returns True when LANGFUSE_BASE_URL contains langfuse."""
1628+ monkeypatch .setenv ("LANGFUSE_BASE_URL" , "https://us.cloud.langfuse.com" )
1629+ tracer = Tracer ()
1630+ assert tracer .is_langfuse is True
1631+
1632+ def test_is_langfuse_false_when_no_langfuse_env_vars (self , monkeypatch ):
1633+ """Test is_langfuse returns False when no Langfuse-related env vars are set."""
1634+ monkeypatch .delenv ("OTEL_EXPORTER_OTLP_ENDPOINT" , raising = False )
1635+ monkeypatch .delenv ("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" , raising = False )
1636+ monkeypatch .delenv ("LANGFUSE_BASE_URL" , raising = False )
1637+ tracer = Tracer ()
1638+ assert tracer .is_langfuse is False
1639+
1640+ def test_is_langfuse_false_with_non_langfuse_endpoint (self , monkeypatch ):
1641+ """Test is_langfuse returns False when endpoint is not Langfuse."""
1642+ monkeypatch .setenv ("OTEL_EXPORTER_OTLP_ENDPOINT" , "https://api.honeycomb.io" )
1643+ monkeypatch .delenv ("LANGFUSE_BASE_URL" , raising = False )
1644+ tracer = Tracer ()
1645+ assert tracer .is_langfuse is False
1646+
1647+ def test_is_langfuse_false_with_non_langfuse_base_url (self , monkeypatch ):
1648+ """Test is_langfuse returns False when LANGFUSE_BASE_URL doesn't contain langfuse."""
1649+ monkeypatch .setenv ("LANGFUSE_BASE_URL" , "https://some-other-service.com" )
1650+ monkeypatch .delenv ("OTEL_EXPORTER_OTLP_ENDPOINT" , raising = False )
1651+ monkeypatch .delenv ("OTEL_EXPORTER_OTLP_TRACES_ENDPOINT" , raising = False )
1652+ tracer = Tracer ()
1653+ assert tracer .is_langfuse is False
0 commit comments