Skip to content

Commit d9126ac

Browse files
committed
Update
1 parent 97bc6fe commit d9126ac

1 file changed

Lines changed: 18 additions & 43 deletions

File tree

tests/client/test_service_parameters.py

Lines changed: 18 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,30 @@
77
from a2a.extensions.common import HTTP_EXTENSION_HEADER
88

99

10-
def test_with_a2a_extensions_sets_header_when_empty():
11-
"""First call on empty parameters sets the joined URIs."""
12-
parameters = ServiceParametersFactory.create(
13-
[with_a2a_extensions(['ext-b', 'ext-a'])]
14-
)
15-
16-
assert parameters[HTTP_EXTENSION_HEADER] == 'ext-a,ext-b'
17-
18-
19-
def test_with_a2a_extensions_merges_disjoint_calls():
20-
"""A second call with disjoint URIs unions both sets."""
10+
def test_with_a2a_extensions_merges_dedupes_and_sorts():
11+
"""Repeated calls accumulate; duplicates collapse; output is sorted."""
2112
parameters = ServiceParametersFactory.create(
2213
[
23-
with_a2a_extensions(['ext-a']),
24-
with_a2a_extensions(['ext-b']),
14+
with_a2a_extensions(['ext-c', 'ext-a']),
15+
with_a2a_extensions(['ext-b', 'ext-a']),
2516
]
2617
)
2718

28-
assert parameters[HTTP_EXTENSION_HEADER] == 'ext-a,ext-b'
19+
assert parameters[HTTP_EXTENSION_HEADER] == 'ext-a,ext-b,ext-c'
2920

3021

31-
def test_with_a2a_extensions_deduplicates_overlapping():
32-
"""Overlapping URIs do not produce duplicates."""
33-
parameters = ServiceParametersFactory.create(
34-
[
35-
with_a2a_extensions(['ext-a', 'ext-b']),
36-
with_a2a_extensions(['ext-b', 'ext-c']),
37-
]
22+
def test_with_a2a_extensions_merges_existing_header_value():
23+
"""Pre-existing comma-separated header values are parsed and merged."""
24+
parameters = ServiceParametersFactory.create_from(
25+
{HTTP_EXTENSION_HEADER: 'ext-a, ext-b'},
26+
[with_a2a_extensions(['ext-c'])],
3827
)
3928

4029
assert parameters[HTTP_EXTENSION_HEADER] == 'ext-a,ext-b,ext-c'
4130

4231

4332
def test_with_a2a_extensions_empty_is_noop():
44-
"""Calling with an empty list leaves any existing header untouched."""
33+
"""An empty extensions list leaves the header untouched / absent."""
4534
parameters = ServiceParametersFactory.create(
4635
[
4736
with_a2a_extensions(['ext-a']),
@@ -50,29 +39,15 @@ def test_with_a2a_extensions_empty_is_noop():
5039
)
5140

5241
assert parameters[HTTP_EXTENSION_HEADER] == 'ext-a'
53-
54-
55-
def test_with_a2a_extensions_empty_does_not_create_header():
56-
"""Calling with an empty list on empty parameters adds nothing."""
57-
parameters = ServiceParametersFactory.create([with_a2a_extensions([])])
58-
59-
assert HTTP_EXTENSION_HEADER not in parameters
60-
61-
62-
def test_with_a2a_extensions_output_is_sorted():
63-
"""Output ordering is deterministic (sorted) regardless of input order."""
64-
parameters = ServiceParametersFactory.create(
65-
[with_a2a_extensions(['c', 'a', 'b'])]
42+
assert HTTP_EXTENSION_HEADER not in ServiceParametersFactory.create(
43+
[with_a2a_extensions([])]
6644
)
6745

68-
assert parameters[HTTP_EXTENSION_HEADER] == 'a,b,c'
6946

70-
71-
def test_with_a2a_extensions_merges_existing_header_value():
72-
"""Existing comma-separated header values are parsed and merged."""
73-
base = ServiceParametersFactory.create_from(
74-
{HTTP_EXTENSION_HEADER: 'ext-a, ext-b'},
75-
[with_a2a_extensions(['ext-c'])],
47+
def test_with_a2a_extensions_normalizes_input_strings():
48+
"""Input strings are split on commas and stripped, like header values."""
49+
parameters = ServiceParametersFactory.create(
50+
[with_a2a_extensions(['ext-a, ext-b', ' ext-c '])]
7651
)
7752

78-
assert base[HTTP_EXTENSION_HEADER] == 'ext-a,ext-b,ext-c'
53+
assert parameters[HTTP_EXTENSION_HEADER] == 'ext-a,ext-b,ext-c'

0 commit comments

Comments
 (0)