Skip to content

Commit 7c10ee5

Browse files
committed
migrate more tests
1 parent 4e1dafe commit 7c10ee5

File tree

6 files changed

+38
-79
lines changed

6 files changed

+38
-79
lines changed

langfuse/_client/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ def __init__(
168168

169169
if debug:
170170
logging.basicConfig(
171-
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
171+
format="%asctime)s - %(name)s - %(levelname)s - %(message)s"
172172
)
173173
langfuse_logger.setLevel(logging.DEBUG)
174174

langfuse/logger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
# Create the main Langfuse logger
1717
langfuse_logger = logging.getLogger("langfuse")
18+
langfuse_logger.setLevel(logging.WARNING)
1819

1920
# Configure httpx logger to reduce noise from HTTP requests
2021
httpx_logger = logging.getLogger("httpx")

langfuse/media.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,13 @@
55
import logging
66
import os
77
import re
8-
from typing import Any, Literal, Optional, Tuple, TypeVar, cast
8+
from typing import TYPE_CHECKING, Any, Literal, Optional, Tuple, TypeVar, cast
99

1010
import requests
1111

12+
if TYPE_CHECKING:
13+
from langfuse._client.client import Langfuse
14+
1215
from langfuse.api import MediaContentType
1316
from langfuse.types import ParsedMediaReference
1417

@@ -211,7 +214,7 @@ def _parse_base64_data_uri(
211214
def resolve_media_references(
212215
*,
213216
obj: T,
214-
langfuse_client: Any,
217+
langfuse_client: "Langfuse",
215218
resolve_with: Literal["base64_data_uri"],
216219
max_depth: int = 10,
217220
content_fetch_timeout_seconds: int = 10,
@@ -275,9 +278,9 @@ def traverse(obj: Any, depth: int) -> Any:
275278
parsed_media_reference = LangfuseMedia.parse_reference_string(
276279
reference_string
277280
)
278-
media_data = langfuse_client.fetch_media(
281+
media_data = langfuse_client.api.media.get(
279282
parsed_media_reference["media_id"]
280-
).data
283+
)
281284
media_content = requests.get(
282285
media_data.url, timeout=content_fetch_timeout_seconds
283286
)

tests/test_json.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import builtins
2-
from dataclasses import dataclass
32
import importlib
43
import json
5-
from datetime import datetime, timezone, date
6-
from unittest.mock import patch
74
import uuid
8-
from bson import ObjectId
5+
from dataclasses import dataclass
6+
from datetime import date, datetime, timezone
7+
from unittest.mock import patch
98

109
import pytest
10+
from bson import ObjectId
1111
from langchain.schema.messages import HumanMessage
1212
from pydantic import BaseModel
1313

1414
import langfuse
15+
from langfuse._utils.serializer import EventSerializer
1516
from langfuse.api.resources.commons.types.observation_level import ObservationLevel
16-
from langfuse.serializer import EventSerializer
1717

1818

1919
class TestModel(BaseModel):

tests/test_logger.py

Lines changed: 10 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22

33
from langfuse import Langfuse
4-
from langfuse.callback import CallbackHandler
4+
from langfuse.logger import langfuse_logger
55

66
"""
77
Level Numeric value
@@ -12,65 +12,22 @@
1212
"""
1313

1414

15-
def test_via_env():
16-
os.environ["LANGFUSE_DEBUG"] = "True"
17-
18-
langfuse = Langfuse()
19-
20-
assert langfuse.log.level == 10
15+
def test_default_langfuse():
16+
Langfuse()
2117

22-
os.environ.pop("LANGFUSE_DEBUG")
18+
assert langfuse_logger.level == 30
2319

2420

25-
def test_via_env_callback():
21+
def test_via_env():
2622
os.environ["LANGFUSE_DEBUG"] = "True"
2723

28-
callback = CallbackHandler()
24+
Langfuse()
25+
26+
assert langfuse_logger.level == 10
2927

30-
assert callback.log.level == 10
31-
assert callback.langfuse.log.level == 10
3228
os.environ.pop("LANGFUSE_DEBUG")
3329

3430

3531
def test_debug_langfuse():
36-
langfuse = Langfuse(debug=True)
37-
assert langfuse.log.level == 10
38-
39-
40-
def test_default_langfuse():
41-
langfuse = Langfuse()
42-
assert langfuse.log.level == 30
43-
44-
45-
def test_default_langfuse_callback():
46-
callback = CallbackHandler()
47-
assert callback.log.level == 30
48-
assert callback.log.level == 30
49-
assert callback.langfuse.log.level == 30
50-
51-
52-
def test_debug_langfuse_callback():
53-
callback = CallbackHandler(debug=True)
54-
assert callback.log.level == 10
55-
assert callback.log.level == 10
56-
assert callback.langfuse.log.level == 10
57-
58-
59-
def test_default_langfuse_trace_callback():
60-
langfuse = Langfuse()
61-
trace = langfuse.trace(name="test")
62-
callback = trace.getNewHandler()
63-
64-
assert callback.log.level == 30
65-
assert callback.log.level == 30
66-
assert callback.trace.log.level == 30
67-
68-
69-
def test_debug_langfuse_trace_callback():
70-
langfuse = Langfuse(debug=True)
71-
trace = langfuse.trace(name="test")
72-
callback = trace.getNewHandler()
73-
74-
assert callback.log.level == 10
75-
assert callback.log.level == 10
76-
assert callback.trace.log.level == 10
32+
Langfuse(debug=True)
33+
assert langfuse_logger.level == 10

tests/test_media.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import pytest
66

7-
from langfuse.client import Langfuse
7+
from langfuse._client.client import Langfuse
88
from langfuse.media import LangfuseMedia
99
from tests.utils import get_api
1010

@@ -124,7 +124,7 @@ def test_replace_media_reference_string_in_object():
124124
mock_trace_name = f"test-trace-with-audio-{uuid4()}"
125125
base64_audio = base64.b64encode(mock_audio_bytes).decode()
126126

127-
trace = langfuse.trace(
127+
span = langfuse.start_span(
128128
name=mock_trace_name,
129129
metadata={
130130
"context": {
@@ -133,40 +133,38 @@ def test_replace_media_reference_string_in_object():
133133
)
134134
}
135135
},
136-
)
136+
).end()
137137

138138
langfuse.flush()
139139

140140
# Verify media reference string format
141-
fetched_trace = get_api().trace.get(trace.id)
142-
media_ref = fetched_trace.metadata["context"]["nested"]
141+
fetched_trace = get_api().trace.get(span.trace_id)
142+
media_ref = fetched_trace.observations[0].metadata["context"]["nested"]
143143
assert re.match(
144144
r"^@@@langfuseMedia:type=audio/wav\|id=.+\|source=base64_data_uri@@@$",
145145
media_ref,
146146
)
147147

148148
# Resolve media references back to base64
149-
resolved_trace = langfuse.resolve_media_references(
150-
obj=fetched_trace, resolve_with="base64_data_uri"
149+
resolved_obs = langfuse.resolve_media_references(
150+
obj=fetched_trace.observations[0], resolve_with="base64_data_uri"
151151
)
152152

153153
# Verify resolved base64 matches original
154154
expected_base64 = f"data:audio/wav;base64,{base64_audio}"
155-
assert resolved_trace["metadata"]["context"]["nested"] == expected_base64
155+
assert resolved_obs["metadata"]["context"]["nested"] == expected_base64
156156

157157
# Create second trace reusing the media reference
158-
trace2 = langfuse.trace(
158+
span2 = langfuse.start_span(
159159
name=f"2-{mock_trace_name}",
160-
metadata={
161-
"context": {"nested": resolved_trace["metadata"]["context"]["nested"]}
162-
},
163-
)
160+
metadata={"context": {"nested": resolved_obs["metadata"]["context"]["nested"]}},
161+
).end()
164162

165163
langfuse.flush()
166164

167165
# Verify second trace has same media reference
168-
fetched_trace2 = get_api().trace.get(trace2.id)
166+
fetched_trace2 = get_api().trace.get(span2.trace_id)
169167
assert (
170-
fetched_trace2.metadata["context"]["nested"]
171-
== fetched_trace.metadata["context"]["nested"]
168+
fetched_trace2.observations[0].metadata["context"]["nested"]
169+
== fetched_trace.observations[0].metadata["context"]["nested"]
172170
)

0 commit comments

Comments
 (0)