forked from agentclientprotocol/python-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_utils.py
More file actions
94 lines (71 loc) · 2.44 KB
/
Copy pathtest_utils.py
File metadata and controls
94 lines (71 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import pytest
from acp.schema import (
AgentMessageChunk,
SetSessionConfigOptionBooleanRequest,
SetSessionConfigOptionSelectRequest,
TextContentBlock,
)
from acp.utils import serialize_params
def test_serialize_params_uses_meta_aliases() -> None:
chunk = AgentMessageChunk(
session_update="agent_message_chunk",
content=TextContentBlock(type="text", text="demo", field_meta={"inner": "value"}),
field_meta={"outer": "value"},
)
payload = serialize_params(chunk)
assert payload["_meta"] == {"outer": "value"}
assert payload["content"]["_meta"] == {"inner": "value"}
def test_serialize_params_omits_meta_when_absent() -> None:
chunk = AgentMessageChunk(
session_update="agent_message_chunk",
content=TextContentBlock(type="text", text="demo"),
)
payload = serialize_params(chunk)
assert "_meta" not in payload
assert "_meta" not in payload["content"]
def test_field_meta_can_be_set_by_name_on_models() -> None:
chunk = AgentMessageChunk(
session_update="agent_message_chunk",
content=TextContentBlock(type="text", text="demo", field_meta={"inner": "value"}),
field_meta={"outer": "value"},
)
assert chunk.field_meta == {"outer": "value"}
assert chunk.content.field_meta == {"inner": "value"}
def test_serialize_params_uses_boolean_config_variant() -> None:
request = SetSessionConfigOptionBooleanRequest(
config_id="brave_mode",
session_id="sess",
type="boolean",
value=True,
)
payload = serialize_params(request)
assert payload == {
"configId": "brave_mode",
"sessionId": "sess",
"type": "boolean",
"value": True,
}
def test_serialize_params_uses_select_config_variant() -> None:
request = SetSessionConfigOptionSelectRequest(
config_id="theme",
session_id="sess",
value="dark",
)
payload = serialize_params(request)
assert payload == {
"configId": "theme",
"sessionId": "sess",
"value": "dark",
}
@pytest.mark.parametrize(
"original, expected",
[
("simple_test", "simpleTest"),
("another_example_here", "anotherExampleHere"),
("lowercase", "lowercase"),
("alreadyCamelCase", "alreadyCamelCase"),
],
)
def test_to_camel_case(original, expected) -> None:
from acp.utils import to_camel_case
assert to_camel_case(original) == expected