a2aproject / a2aproject/a2a-tck
[Bug]: Inconsistent blocking configuration in gRPC client vs. tests
- Dominant language
- Python
- Stars
- 50
- Forks
- 40
- Avg merge
- 7d 1h
- Merged PRs (30d)
- 1
Description
### What happened?
In [GRPC client](https://github.com/a2aproject/a2a-tck/blob/b03fefcae9767dad0e978e11573192f74252dfe3/tck/transport/grpc_client.py#L411), blocking is explicitly set to true. However, in the [test](https://github.com/a2aproject/a2a-tck/blob/b03fefcae9767dad0e978e11573192f74252dfe3/tests/mandatory/protocol/test_a2a_v030_new_methods.py#L317-L321), the cancel function expects blocking to be false. Otherwise TaskState would be TaskStateCompleted which is immutable.
For the [JSON-RPC client](https://github.com/a2aproject/a2a-tck/blob/b03fefcae9767dad0e978e11573192f74252dfe3/tck/transport/jsonrpc_client.py#L283-L288), blocking isn't set (defaulting to false?), which matches the test expectation.
Why the gRPC client forced to blocking while the test expects non-blocking behavior?"
### Relevant log output
```shell
```
### Code of Conduct
- [x] I agree to follow this project's Code of Conduct
Contributor guide
Research direction
Examine the gRPC client at tck/transport/grpc_client.py line 411 where blocking is set to True. Compare with the test in tests/mandatory/protocol/test_a2a_v030_new_methods.py lines 317-321, which expects blocking=False. Also review the JSON-RPC client at tck/transport/jsonrpc_client.py lines 283-288 for default behavior. Determine whether the gRPC client should align with the test's non-blocking expectation or if the test needs updating. Run the specific test to see the failure and understand the TaskState immutability constraint.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, python
- Domain
- backend-api-design, testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 55/100