Skip to content

Commit ee76e99

Browse files
committed
mr comments
1 parent d2d09b8 commit ee76e99

File tree

3 files changed

+41
-22
lines changed

3 files changed

+41
-22
lines changed

tests/builders.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from dataclasses import dataclass, field
2+
from typing import Any
23

34
from a2a.types import (
45
Artifact,
@@ -20,9 +21,9 @@ class TaskBuilder:
2021
context_id: str = 'context-default'
2122
state: TaskState = TaskState.submitted
2223
kind: str = 'task'
23-
artifacts: list = field(default_factory=list)
24-
history: list = field(default_factory=list)
25-
metadata: dict = field(default_factory=dict)
24+
artifacts: list[Artifact] = field(default_factory=list)
25+
history: list[Message] = field(default_factory=list)
26+
metadata: dict[str, Any] = field(default_factory=dict)
2627

2728
def with_id(self, id: str) -> 'TaskBuilder':
2829
self.id = id
@@ -141,7 +142,7 @@ class StatusUpdateEventBuilder:
141142
state: TaskState = TaskState.working
142143
message: Message | None = None
143144
final: bool = False
144-
metadata: dict = field(default_factory=dict)
145+
metadata: dict[str, Any] = field(default_factory=dict)
145146

146147
def for_task(self, task_id: str) -> 'StatusUpdateEventBuilder':
147148
self.task_id = task_id

tests/fixtures.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
import pytest
22

3-
from builders import (
3+
from a2a.server.tasks import TaskManager
4+
from a2a.types import TaskState
5+
from tests.builders import (
46
ArtifactBuilder,
57
MessageBuilder,
68
TaskBuilder,
79
)
8-
from test_doubles import (
10+
from tests.test_doubles import (
911
FakeHttpClient,
1012
InMemoryTaskStore,
1113
SpyEventQueue,
1214
StubPushNotificationConfigStore,
1315
)
1416

15-
from a2a.server.tasks import TaskManager
16-
from a2a.types import TaskState
17-
1817

1918
@pytest.fixture
2019
def task_store():

tests/server/tasks/test_task_manager.py

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,37 @@
1-
import sys
2-
3-
from pathlib import Path
41
from typing import Any
52

63
import pytest
74

8-
9-
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
10-
11-
from builders import (
12-
ArtifactUpdateEventBuilder,
13-
StatusUpdateEventBuilder,
14-
)
15-
from fixtures import *
16-
from test_doubles import InMemoryTaskStore
17-
185
from a2a.server.tasks import TaskManager
196
from a2a.types import (
207
InvalidParamsError,
218
TaskState,
229
)
2310
from a2a.utils.errors import ServerError
11+
from tests.builders import (
12+
ArtifactUpdateEventBuilder,
13+
StatusUpdateEventBuilder,
14+
)
15+
from tests.fixtures import (
16+
artifact_builder,
17+
event_queue,
18+
http_client,
19+
message_builder,
20+
push_config_store,
21+
submitted_task,
22+
task_builder,
23+
task_manager,
24+
task_manager_factory,
25+
task_store,
26+
)
27+
from tests.test_doubles import InMemoryTaskStore
2428

2529

2630
@pytest.mark.parametrize('invalid_task_id', ['', 123])
2731
def test_task_manager_invalid_task_id(
2832
task_store: InMemoryTaskStore, invalid_task_id: Any
2933
):
34+
"""Test that TaskManager raises ValueError for an invalid task_id."""
3035
with pytest.raises(ValueError, match='Task ID must be a non-empty string'):
3136
TaskManager(
3237
task_id=invalid_task_id,
@@ -40,6 +45,7 @@ def test_task_manager_invalid_task_id(
4045
async def test_get_task_existing(
4146
task_manager_factory, task_store: InMemoryTaskStore, submitted_task
4247
):
48+
"""Test retrieving an existing task from the task store."""
4349
task_manager = task_manager_factory(
4450
task_id=submitted_task.id, context_id=submitted_task.context_id
4551
)
@@ -55,6 +61,7 @@ async def test_get_task_existing(
5561
async def test_get_task_nonexistent(
5662
task_manager: TaskManager, task_store: InMemoryTaskStore
5763
):
64+
"""Test retrieving a non-existent task returns None."""
5865
retrieved_task = await task_manager.get_task()
5966

6067
assert retrieved_task is None
@@ -65,6 +72,7 @@ async def test_get_task_nonexistent(
6572
async def test_save_task_event_new_task(
6673
task_manager_factory, task_store: InMemoryTaskStore, task_builder
6774
):
75+
"""Test saving a new task event to the task store."""
6876
task = task_builder.with_id('task-abc').build()
6977
task_manager = task_manager_factory(task_id=None, context_id=None)
7078

@@ -81,6 +89,7 @@ async def test_save_task_event_status_update(
8189
task_builder,
8290
message_builder,
8391
):
92+
"""Test saving a status update event for an existing task."""
8493
initial_task = (
8594
task_builder.with_id('task-abc').with_context_id('context-xyz').build()
8695
)
@@ -117,6 +126,7 @@ async def test_save_task_event_artifact_update(
117126
task_builder,
118127
artifact_builder,
119128
):
129+
"""Test saving an artifact update event for an existing task."""
120130
initial_task = (
121131
task_builder.with_id('task-abc').with_context_id('context-xyz').build()
122132
)
@@ -151,6 +161,7 @@ async def test_save_task_event_artifact_update(
151161
async def test_save_task_event_metadata_update(
152162
task_manager_factory, task_store: InMemoryTaskStore, task_builder
153163
):
164+
"""Test saving a metadata update event for an existing task."""
154165
initial_task = (
155166
task_builder.with_id('task-abc').with_context_id('context-xyz').build()
156167
)
@@ -178,6 +189,7 @@ async def test_save_task_event_metadata_update(
178189
async def test_ensure_task_existing(
179190
task_manager_factory, task_store: InMemoryTaskStore, submitted_task
180191
):
192+
"""Test ensuring a task that already exists in the store."""
181193
task_store.set_task(submitted_task)
182194
task_manager = task_manager_factory(
183195
task_id=submitted_task.id, context_id=submitted_task.context_id
@@ -201,6 +213,7 @@ async def test_ensure_task_existing(
201213
async def test_ensure_task_nonexistent(
202214
task_store: InMemoryTaskStore, task_manager_factory
203215
):
216+
"""Test ensuring a task that does not exist creates a new one."""
204217
task_manager = task_manager_factory(task_id=None, context_id=None)
205218

206219
event = (
@@ -222,6 +235,7 @@ async def test_ensure_task_nonexistent(
222235

223236

224237
def test_init_task_obj(task_manager: TaskManager):
238+
"""Test initializing a new task object with default values."""
225239
new_task = task_manager._init_task_obj('new-task', 'new-context')
226240

227241
assert new_task.id == 'new-task'
@@ -234,6 +248,7 @@ def test_init_task_obj(task_manager: TaskManager):
234248
async def test_save_task(
235249
task_manager: TaskManager, task_store: InMemoryTaskStore, submitted_task
236250
):
251+
"""Test saving a task directly to the task store."""
237252
await task_manager._save_task(submitted_task)
238253

239254
task_store.assert_save_called(times=1)
@@ -244,6 +259,7 @@ async def test_save_task(
244259
async def test_save_task_event_mismatched_id_raises_error(
245260
task_manager: TaskManager, task_builder
246261
):
262+
"""Test that saving a task with mismatched ID raises an error."""
247263
mismatched_task = (
248264
task_builder.with_id('wrong-id').with_context_id('session-xyz').build()
249265
)
@@ -257,6 +273,7 @@ async def test_save_task_event_mismatched_id_raises_error(
257273
async def test_save_task_event_new_task_no_task_id(
258274
task_store: InMemoryTaskStore, task_manager_factory, task_builder
259275
):
276+
"""Test saving a new task event when task manager has no task_id."""
260277
task_manager = task_manager_factory(task_id=None, context_id=None)
261278

262279
task = (
@@ -279,6 +296,7 @@ async def test_save_task_event_new_task_no_task_id(
279296
async def test_get_task_no_task_id(
280297
task_store: InMemoryTaskStore, task_manager_factory
281298
):
299+
"""Test get_task returns None when task manager has no task_id."""
282300
task_manager = task_manager_factory(task_id=None, context_id='some-context')
283301

284302
retrieved_task = await task_manager.get_task()
@@ -291,6 +309,7 @@ async def test_get_task_no_task_id(
291309
async def test_save_task_event_no_task_existing(
292310
task_store: InMemoryTaskStore, task_manager_factory
293311
):
312+
"""Test saving an event when no task exists creates a new task."""
294313
task_manager = task_manager_factory(task_id=None, context_id=None)
295314

296315
event = (

0 commit comments

Comments
 (0)