Skip to content

Conversation

@didier-durand
Copy link
Contributor

Description

Hi,

Adding 13 tests server/tasks/task_updater.py

They all pass: see below

Test Execution

============================= test session starts ==============================
collecting ... collected 124 items

client/test_client.py::TestA2ACardResolver::test_init_strips_slashes 
client/test_client.py::TestA2ACardResolver::test_get_agent_card_success 
client/test_client.py::TestA2ACardResolver::test_get_agent_card_http_status_error 
client/test_client.py::TestA2ACardResolver::test_get_agent_card_json_decode_error 
client/test_client.py::TestA2ACardResolver::test_get_agent_card_request_error 
client/test_client.py::TestA2AClient::test_init_with_agent_card 
client/test_client.py::TestA2AClient::test_init_with_url 
client/test_client.py::TestA2AClient::test_init_with_agent_card_and_url_prioritizes_agent_card 
client/test_client.py::TestA2AClient::test_init_raises_value_error_if_no_card_or_url 
client/test_client.py::TestA2AClient::test_get_client_from_agent_card_url_success 
client/test_client.py::TestA2AClient::test_get_client_from_agent_card_url_resolver_error 
client/test_client.py::TestA2AClient::test_send_message_success_use_request 
client/test_client.py::TestA2AClient::test_send_message_error_response 
client/test_client.py::TestA2AClient::test_send_message_streaming_success_request 
client/test_client.py::TestA2AClient::test_get_task_success_use_request 
client/test_client.py::TestA2AClient::test_get_task_error_response 
client/test_client.py::TestA2AClient::test_cancel_task_success_use_request 
client/test_client.py::TestA2AClient::test_cancel_task_error_response 
server/events/test_event_consumer.py::test_consume_one_task_event PASSED [  0%]PASSED [  1%]PASSED [  2%]PASSED [  3%]PASSED [  4%]PASSED   [  4%]PASSED          [  5%]PASSED [  6%]PASSED [  7%]PASSED [  8%]PASSED [  8%]PASSED [  9%]PASSED [ 10%]PASSED [ 11%]PASSED [ 12%]PASSED [ 12%]PASSED [ 13%]PASSED [ 14%]
server/events/test_event_consumer.py::test_consume_one_message_event 
server/events/test_event_consumer.py::test_consume_one_a2a_error_event 
server/events/test_event_consumer.py::test_consume_one_jsonrpc_error_event 
server/events/test_event_consumer.py::test_consume_one_queue_empty 
server/events/test_event_consumer.py::test_consume_all_multiple_events 
server/events/test_event_consumer.py::test_consume_until_message 
server/events/test_event_consumer.py::test_consume_message_events 
server/events/test_event_queue.py::test_enqueue_and_dequeue_event 
server/events/test_event_queue.py::test_dequeue_event_no_wait 
server/events/test_event_queue.py::test_dequeue_event_empty_queue_no_wait 
server/events/test_event_queue.py::test_dequeue_event_wait 
server/events/test_event_queue.py::test_task_done 
server/events/test_event_queue.py::test_enqueue_different_event_types 
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_cancel_task_not_found 
server/tasks/test_inmemory_task_store.py::test_in_memory_task_store_get_nonexistent 
server/tasks/test_inmemory_task_store.py::test_in_memory_task_store_delete 
server/tasks/test_inmemory_task_store.py::test_in_memory_task_store_delete_nonexistent 
server/tasks/test_task_manager.py::test_get_task_existing 
server/tasks/test_task_manager.py::test_get_task_nonexistent 
server/tasks/test_task_manager.py::test_save_task_event_new_task 
server/tasks/test_task_manager.py::test_save_task_event_status_update 
server/tasks/test_task_manager.py::test_save_task_event_artifact_update 
server/tasks/test_task_manager.py::test_ensure_task_existing 
server/tasks/test_task_manager.py::test_ensure_task_nonexistent 
server/tasks/test_task_manager.py::test_init_task_obj 
server/tasks/test_task_manager.py::test_save_task 
server/tasks/test_task_manager.py::test_save_task_event_new_task_no_task_id 
server/tasks/test_task_manager.py::test_get_task_no_task_id 
server/tasks/test_task_manager.py::test_save_task_event_no_task_existing 
server/tasks/test_task_updater.py::TestTaskUpdater::test_init PASSED [ 15%]PASSED [ 16%]PASSED [ 16%]PASSED [ 17%]PASSED [ 18%]PASSED [ 19%]PASSED  [ 20%]PASSED [ 20%]PASSED [ 21%]PASSED     [ 22%]PASSED [ 23%]PASSED        [ 24%]PASSED                 [ 25%]PASSED [ 25%]PASSED [ 26%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_cancel_task_not_supported PASSED [ 27%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_cancel_task_success PASSED [ 28%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_get_task_not_found PASSED [ 29%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_get_task_success PASSED [ 29%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_message_error PASSED [ 30%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_message_new_message_success PASSED [ 31%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_message_new_message_with_existing_task_success PASSED [ 32%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_message_stream_new_message_existing_task_success PASSED [ 33%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_message_stream_new_message_success PASSED [ 33%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_resubscribe_existing_task_success PASSED [ 34%]
server/request_handlers/test_jsonrpc_handler.py::TestJSONRPCtHandler::test_on_resubscribe_no_existing_task_error PASSED [ 35%]
server/tasks/test_inmemory_task_store.py::test_in_memory_task_store_save_and_get PASSED [ 36%]PASSED [ 37%]PASSED [ 37%]PASSED [ 38%]PASSED         [ 39%]PASSED      [ 40%]PASSED  [ 41%]PASSED [ 41%]PASSED [ 42%]PASSED      [ 43%]PASSED   [ 44%]PASSED             [ 45%]PASSED                 [ 45%]PASSED [ 46%]PASSED       [ 47%]PASSED [ 48%]PASSED     [ 49%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_update_status_without_message PASSED [ 50%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_update_status_with_message PASSED [ 50%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_update_status_final PASSED [ 51%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_add_artifact_with_custom_id_and_name PASSED [ 52%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_complete_without_message PASSED [ 53%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_complete_with_message PASSED [ 54%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_submit_without_message PASSED [ 54%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_submit_with_message PASSED [ 55%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_start_work_without_message PASSED [ 56%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_start_work_with_message PASSED [ 57%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_new_agent_message PASSED [ 58%]
server/tasks/test_task_updater.py::TestTaskUpdater::test_new_agent_message_with_metadata_and_final PASSED [ 58%]
test_types.py::test_agent_authentication_valid 
test_types.py::test_agent_authentication_invalid 
test_types.py::test_agent_capabilities 
test_types.py::test_agent_provider 
test_types.py::test_agent_skill_valid 
test_types.py::test_agent_skill_invalid 
test_types.py::test_agent_card_valid 
test_types.py::test_agent_card_invalid 
test_types.py::test_text_part 
test_types.py::test_file_part_variants 
test_types.py::test_data_part 
test_types.py::test_part_root_model 
test_types.py::test_message 
test_types.py::test_task_status 
test_types.py::test_task 
test_types.py::test_jsonrpc_error 
test_types.py::test_jsonrpc_request 
test_types.py::test_jsonrpc_error_response 
test_types.py::test_jsonrpc_response_root_model 
test_types.py::test_send_message_request 
test_types.py::test_send_subscribe_request 
test_types.py::test_get_task_request 
test_types.py::test_cancel_task_request 
test_types.py::test_get_task_response 
test_types.py::test_send_message_response 
test_types.py::test_cancel_task_response 
test_types.py::test_send_message_streaming_status_update_response 
test_types.py::test_send_message_streaming_artifact_update_response 
test_types.py::test_set_task_push_notification_response 
test_types.py::test_get_task_push_notification_response 
test_types.py::test_a2a_request_root_model 
test_types.py::test_content_type_not_supported_error 
test_types.py::test_task_not_found_error 
test_types.py::test_push_notification_not_supported_error 
test_types.py::test_internal_error 
test_types.py::test_invalid_params_error 
test_types.py::test_invalid_request_error 
test_types.py::test_json_parse_error 
test_types.py::test_method_not_found_error 
test_types.py::test_task_not_cancelable_error 
test_types.py::test_unsupported_operation_error 
test_types.py::test_task_id_params_valid 
test_types.py::test_task_id_params_invalid 
test_types.py::test_task_push_notification_config 
test_types.py::test_jsonrpc_message_valid 
test_types.py::test_jsonrpc_message_invalid 
test_types.py::test_file_base_valid 
test_types.py::test_file_base_invalid 
test_types.py::test_part_base_valid 
test_types.py::test_part_base_invalid 
test_types.py::test_a2a_error_validation_and_serialization 

@didier-durand didier-durand requested a review from a team as a code owner May 15, 2025 05:28
Copy link
Member

@holtskinner holtskinner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The unit tests are currently failing. Possibly the Message class was edited since you originally made these?

=========================== short test summary info ============================
FAILED tests/server/tasks/test_task_updater.py::TestTaskUpdater::test_new_agent_message - AttributeError: 'Message' object has no attribute 'final'
FAILED tests/server/tasks/test_task_updater.py::TestTaskUpdater::test_new_agent_message_with_metadata_and_final - AttributeError: 'Message' object has no attribute 'final'
=================== 2 failed, 183 passed, 1 warning in 3.37s ===================

@didier-durand
Copy link
Contributor Author

Hi, updated the failing tests to remove checks on Message attribute 'final' which has been removed from type definition.

@holtskinner holtskinner self-requested a review May 20, 2025 14:09
@holtskinner holtskinner enabled auto-merge (squash) May 20, 2025 14:09
@holtskinner holtskinner merged commit 3b09ac0 into a2aproject:main May 20, 2025
5 checks passed
martimfasantos pushed a commit to martimfasantos/a2a-python that referenced this pull request May 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants