microsoft-agents-activity 0.4.0.dev6__tar.gz → 0.4.0.dev7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of microsoft-agents-activity might be problematic. Click here for more details.
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/PKG-INFO +1 -1
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents_activity.egg-info/PKG-INFO +1 -1
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents_activity.egg-info/SOURCES.txt +1 -4
- microsoft_agents_activity-0.4.0.dev6/tests/test_activity.py +0 -371
- microsoft_agents_activity-0.4.0.dev6/tests/test_token_response.py +0 -24
- microsoft_agents_activity-0.4.0.dev6/tests/test_tools.py +0 -116
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/__init__.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/_load_configuration.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/_model_utils.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/_type_aliases.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/action_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/activity.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/activity_event_names.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/activity_importance.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/activity_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/adaptive_card_invoke_action.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/adaptive_card_invoke_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/adaptive_card_invoke_value.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/agents_model.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/animation_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/attachment.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/attachment_data.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/attachment_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/attachment_layout_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/attachment_view.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/audio_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/basic_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/caller_id_constants.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/card_action.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/card_image.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/channel_account.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/channel_adapter_protocol.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/channels.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/contact_relation_update_action_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversation_account.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversation_members.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversation_parameters.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversation_reference.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversation_resource_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversation_update_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/conversations_result.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/delivery_modes.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/end_of_conversation_codes.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/__init__.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/ai_entity.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/entity.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/geo_coordinates.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/mention.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/place.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/entity/thing.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/error.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/error_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/expected_replies.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/fact.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/hero_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/inner_http_error.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/input_hints.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/installation_update_action_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/invoke_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/media_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/media_event_value.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/media_url.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/message_reaction.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/message_reaction_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/message_update_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/oauth_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/paged_members_result.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/receipt_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/receipt_item.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/resource_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/role_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/semantic_action.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/semantic_actions_states.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/sign_in_constants.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/sign_in_resource.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/signin_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/suggested_actions.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/__init__.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/app_based_link_query.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/batch_failed_entries_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/batch_failed_entry.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/batch_operation_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/batch_operation_state_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/bot_config_auth.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/cache_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/cancel_operation_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/channel_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/config_auth_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/config_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/config_response_base.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/config_task_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/conversation_list.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/file_consent_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/file_consent_card_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/file_download_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/file_info_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/file_upload_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_details_base.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_end_event_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_event_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_notification.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_notification_base.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_notification_channel_data.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_notification_recipient_failure_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_notification_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_participant_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_participants_event_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_stage_surface.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_start_event_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/meeting_tab_icon_surface.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_app.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_attachment.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_body.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_conversation.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_from.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_mention.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_reaction.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/message_actions_payload_user.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_action.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_action_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_attachment.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_parameter.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_query.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_query_options.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_result.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/messaging_extension_suggested_action.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/notification_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_action_base.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_action_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_action_query.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_date_input.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_fact.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_http_post.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_image.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_input_base.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_multichoice_input.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_multichoice_input_choice.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_open_uri.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_open_uri_target.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_section.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_text_input.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/o365_connector_card_view_action.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/on_behalf_of.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/read_receipt_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/signin_state_verification_query.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/surface.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_context.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_entity_context.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_request.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_response_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_response_cards.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_response_payload.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_submit.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_submit_data.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tab_suggested_actions.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/targeted_meeting_notification.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/targeted_meeting_notification_value.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_card_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_continue_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_message_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_request.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_request_context.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_response_base.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/task_module_task_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/team_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/team_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_batch_operation_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_channel_account.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_channel_data.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_channel_data_settings.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_meeting_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_meeting_member.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_meeting_participant.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_member.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/teams_paged_members_result.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/tenant_info.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/teams/user_meeting_details.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/text_format_types.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/text_highlight.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/thumbnail_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/thumbnail_url.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_exchange_invoke_request.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_exchange_invoke_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_exchange_resource.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_exchange_state.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_post_resource.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_request.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_response.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/token_status.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/transcript.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/turn_context_protocol.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents/activity/video_card.py +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents_activity.egg-info/dependency_links.txt +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents_activity.egg-info/requires.txt +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/microsoft_agents_activity.egg-info/top_level.txt +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/pyproject.toml +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/setup.cfg +0 -0
- {microsoft_agents_activity-0.4.0.dev6 → microsoft_agents_activity-0.4.0.dev7}/setup.py +0 -0
|
@@ -197,7 +197,4 @@ microsoft_agents_activity.egg-info/PKG-INFO
|
|
|
197
197
|
microsoft_agents_activity.egg-info/SOURCES.txt
|
|
198
198
|
microsoft_agents_activity.egg-info/dependency_links.txt
|
|
199
199
|
microsoft_agents_activity.egg-info/requires.txt
|
|
200
|
-
microsoft_agents_activity.egg-info/top_level.txt
|
|
201
|
-
tests/test_activity.py
|
|
202
|
-
tests/test_token_response.py
|
|
203
|
-
tests/test_tools.py
|
|
200
|
+
microsoft_agents_activity.egg-info/top_level.txt
|
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
from microsoft_agents.activity.entity import mention
|
|
2
|
-
import pytest
|
|
3
|
-
|
|
4
|
-
from microsoft_agents.activity import (
|
|
5
|
-
Activity,
|
|
6
|
-
ActivityTypes,
|
|
7
|
-
Entity,
|
|
8
|
-
Mention,
|
|
9
|
-
ResourceResponse,
|
|
10
|
-
ChannelAccount,
|
|
11
|
-
ConversationAccount,
|
|
12
|
-
ConversationReference,
|
|
13
|
-
DeliveryModes,
|
|
14
|
-
Attachment,
|
|
15
|
-
GeoCoordinates,
|
|
16
|
-
AIEntity,
|
|
17
|
-
Place,
|
|
18
|
-
Thing,
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
from .activity_data.activity_test_data import MyChannelData
|
|
22
|
-
from .activity_tools.testing_activity import create_test_activity
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def helper_validate_recipient_and_from(
|
|
26
|
-
activity: Activity, create_recipient: bool, create_from: bool
|
|
27
|
-
):
|
|
28
|
-
if create_recipient:
|
|
29
|
-
assert activity.from_property.id == "ChannelAccount_Id_2"
|
|
30
|
-
assert activity.from_property.name == "ChannelAccount_Name_2"
|
|
31
|
-
else:
|
|
32
|
-
assert activity.from_property.id is None
|
|
33
|
-
assert activity.from_property.name is None
|
|
34
|
-
|
|
35
|
-
if create_from:
|
|
36
|
-
assert activity.recipient.id == "ChannelAccount_Id_1"
|
|
37
|
-
assert activity.recipient.name == "ChannelAccount_Name_1"
|
|
38
|
-
else:
|
|
39
|
-
assert activity.recipient.id is None
|
|
40
|
-
assert activity.recipient.name is None
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def helper_get_expected_try_get_channel_data_result(channel_data) -> bool:
|
|
44
|
-
return isinstance(channel_data, dict) or isinstance(channel_data, MyChannelData)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
class TestActivityConversationOps:
|
|
48
|
-
|
|
49
|
-
@pytest.fixture
|
|
50
|
-
def activity(self):
|
|
51
|
-
return create_test_activity("en-us")
|
|
52
|
-
|
|
53
|
-
def test_get_conversation_reference(self, activity):
|
|
54
|
-
conversation_reference = activity.get_conversation_reference()
|
|
55
|
-
|
|
56
|
-
assert activity.id == conversation_reference.activity_id
|
|
57
|
-
assert activity.from_property.id == conversation_reference.user.id
|
|
58
|
-
assert activity.recipient.id == conversation_reference.agent.id
|
|
59
|
-
assert activity.conversation.id == conversation_reference.conversation.id
|
|
60
|
-
assert activity.channel_id == conversation_reference.channel_id
|
|
61
|
-
assert activity.locale == conversation_reference.locale
|
|
62
|
-
assert activity.service_url == conversation_reference.service_url
|
|
63
|
-
|
|
64
|
-
def test_get_reply_conversation_reference(self, activity):
|
|
65
|
-
reply = ResourceResponse(id="1234")
|
|
66
|
-
conversation_reference = activity.get_reply_conversation_reference(reply)
|
|
67
|
-
|
|
68
|
-
assert reply.id == conversation_reference.activity_id
|
|
69
|
-
assert activity.from_property.id == conversation_reference.user.id
|
|
70
|
-
assert activity.recipient.id == conversation_reference.agent.id
|
|
71
|
-
assert activity.conversation.id == conversation_reference.conversation.id
|
|
72
|
-
assert activity.channel_id == conversation_reference.channel_id
|
|
73
|
-
assert activity.locale == conversation_reference.locale
|
|
74
|
-
assert activity.service_url == conversation_reference.service_url
|
|
75
|
-
|
|
76
|
-
def remove_recipient_mention_for_teams(self, activity):
|
|
77
|
-
activity.text = "<at>firstName</a> lastName\n"
|
|
78
|
-
expected_stripped_name = "lastName"
|
|
79
|
-
|
|
80
|
-
mention = Mention(
|
|
81
|
-
mentioned=ChannelAccount(id=activity.recipient.id, name="firstName"),
|
|
82
|
-
text=None,
|
|
83
|
-
)
|
|
84
|
-
lst = []
|
|
85
|
-
|
|
86
|
-
output = mention.model_dump()
|
|
87
|
-
entity = Entity(**output)
|
|
88
|
-
|
|
89
|
-
lst.append(entity)
|
|
90
|
-
activity.entities = lst
|
|
91
|
-
|
|
92
|
-
stripped_activity_text = activity.remove_recipient_mention()
|
|
93
|
-
assert stripped_activity_text == expected_stripped_name
|
|
94
|
-
|
|
95
|
-
def remove_recipient_mention_for_non_teams_scenario(self, activity):
|
|
96
|
-
activity.text = "<at>firstName</a> lastName\n"
|
|
97
|
-
expected_stripped_name = "lastName"
|
|
98
|
-
|
|
99
|
-
mention = Mention(
|
|
100
|
-
ChannelAccount(id=activity.recipient.id, name="<at>firstName</a>"),
|
|
101
|
-
text="<at>firstName</at>",
|
|
102
|
-
)
|
|
103
|
-
lst = []
|
|
104
|
-
|
|
105
|
-
output = mention.model_dump()
|
|
106
|
-
entity = Entity(**output)
|
|
107
|
-
|
|
108
|
-
lst.append(entity)
|
|
109
|
-
activity.entities = lst
|
|
110
|
-
|
|
111
|
-
stripped_activity_text = activity.remove_recipient_mention()
|
|
112
|
-
assert stripped_activity_text == expected_stripped_name
|
|
113
|
-
|
|
114
|
-
def test_apply_conversation_reference_is_incoming(self):
|
|
115
|
-
activity = create_test_activity("en-uS") # on purpose
|
|
116
|
-
conversation_reference = ConversationReference(
|
|
117
|
-
channel_id="cr_123",
|
|
118
|
-
service_url="cr_serviceUrl",
|
|
119
|
-
conversation=ConversationAccount(id="cr_456"),
|
|
120
|
-
user=ChannelAccount(id="cr_abc"),
|
|
121
|
-
agent=ChannelAccount(id="cr_def"),
|
|
122
|
-
activity_id="cr_12345",
|
|
123
|
-
locale="en-us",
|
|
124
|
-
# delivery_mode = DeliveryModes.expect_replies
|
|
125
|
-
)
|
|
126
|
-
|
|
127
|
-
activity_to_send = activity.apply_conversation_reference(
|
|
128
|
-
conversation_reference, is_incoming=True
|
|
129
|
-
)
|
|
130
|
-
conversation_reference = activity_to_send.get_conversation_reference()
|
|
131
|
-
|
|
132
|
-
assert conversation_reference.channel_id == activity.channel_id
|
|
133
|
-
assert conversation_reference.service_url == activity.service_url
|
|
134
|
-
assert conversation_reference.conversation.id == activity.conversation.id
|
|
135
|
-
# assert conversation_reference.delivery_mode == activity.delivery_mode robrandao: TODO
|
|
136
|
-
assert conversation_reference.user.id == activity.from_property.id
|
|
137
|
-
assert conversation_reference.agent.id == activity.recipient.id
|
|
138
|
-
assert conversation_reference.activity_id == activity.id
|
|
139
|
-
assert activity.locale == activity_to_send.locale
|
|
140
|
-
|
|
141
|
-
@pytest.mark.parametrize("locale", ["EN-US", "en-uS"])
|
|
142
|
-
def test_apply_conversation_reference(self, locale):
|
|
143
|
-
activity = create_test_activity(locale)
|
|
144
|
-
conversation_reference = ConversationReference(
|
|
145
|
-
channel_id="123",
|
|
146
|
-
service_url="serviceUrl",
|
|
147
|
-
conversation=ConversationAccount(id="456"),
|
|
148
|
-
user=ChannelAccount(id="abc"),
|
|
149
|
-
agent=ChannelAccount(id="def"),
|
|
150
|
-
activity_id="12345",
|
|
151
|
-
locale="en-us",
|
|
152
|
-
)
|
|
153
|
-
|
|
154
|
-
activity_to_send = activity.apply_conversation_reference(
|
|
155
|
-
conversation_reference, is_incoming=False
|
|
156
|
-
)
|
|
157
|
-
|
|
158
|
-
assert conversation_reference.channel_id == activity.channel_id
|
|
159
|
-
assert conversation_reference.service_url == activity.service_url
|
|
160
|
-
assert conversation_reference.conversation.id == activity.conversation.id
|
|
161
|
-
|
|
162
|
-
assert conversation_reference.agent.id == activity.from_property.id
|
|
163
|
-
assert conversation_reference.user.id == activity.recipient.id
|
|
164
|
-
|
|
165
|
-
if locale is None:
|
|
166
|
-
assert conversation_reference.locale == activity_to_send.locale
|
|
167
|
-
else:
|
|
168
|
-
assert activity.locale == activity_to_send.locale
|
|
169
|
-
|
|
170
|
-
@pytest.mark.parametrize(
|
|
171
|
-
"value, value_type, create_recipient, create_from, label",
|
|
172
|
-
[
|
|
173
|
-
["myValue", None, False, False, None],
|
|
174
|
-
[None, None, False, False, None],
|
|
175
|
-
[None, "myValueType", False, False, None],
|
|
176
|
-
[None, None, True, False, None],
|
|
177
|
-
[None, None, False, True, "testLabel"],
|
|
178
|
-
],
|
|
179
|
-
)
|
|
180
|
-
def test_create_trace(
|
|
181
|
-
self, value, value_type, create_recipient, create_from, label
|
|
182
|
-
):
|
|
183
|
-
activity = create_test_activity("en-us", create_recipient, create_from)
|
|
184
|
-
trace = activity.create_trace("test", value, value_type, label)
|
|
185
|
-
|
|
186
|
-
assert trace is not None
|
|
187
|
-
assert trace.type == ActivityTypes.trace
|
|
188
|
-
if value_type:
|
|
189
|
-
assert trace.value_type == value_type
|
|
190
|
-
elif value:
|
|
191
|
-
assert trace.value_type == type(value).__name__
|
|
192
|
-
else:
|
|
193
|
-
assert trace.value_type is None
|
|
194
|
-
assert trace.label == label
|
|
195
|
-
assert trace.name == "test"
|
|
196
|
-
|
|
197
|
-
@pytest.mark.parametrize(
|
|
198
|
-
"activity_type, activity_type_name",
|
|
199
|
-
[
|
|
200
|
-
(ActivityTypes.end_of_conversation, "end_of_conversation"),
|
|
201
|
-
(ActivityTypes.event, "event"),
|
|
202
|
-
(ActivityTypes.handoff, "handoff"),
|
|
203
|
-
(ActivityTypes.invoke, "invoke"),
|
|
204
|
-
(ActivityTypes.message, "message"),
|
|
205
|
-
(ActivityTypes.typing, "typing"),
|
|
206
|
-
],
|
|
207
|
-
)
|
|
208
|
-
def test_can_create_activities(self, activity_type, activity_type_name):
|
|
209
|
-
create_activity_method = getattr(
|
|
210
|
-
Activity, f"create_{activity_type_name}_activity"
|
|
211
|
-
)
|
|
212
|
-
activity = create_activity_method()
|
|
213
|
-
expected_activity_type = activity_type
|
|
214
|
-
|
|
215
|
-
assert activity is not None
|
|
216
|
-
assert activity.type == expected_activity_type
|
|
217
|
-
|
|
218
|
-
if expected_activity_type == ActivityTypes.message:
|
|
219
|
-
assert activity.attachments is None
|
|
220
|
-
assert activity.entities is None
|
|
221
|
-
|
|
222
|
-
@pytest.mark.parametrize(
|
|
223
|
-
"name, value_type, value, label",
|
|
224
|
-
[["TestTrace", "NoneType", None, None], ["TestTrace", None, "TestValue", None]],
|
|
225
|
-
)
|
|
226
|
-
def test_create_trace_activity(self, name, value_type, value, label):
|
|
227
|
-
activity = Activity.create_trace_activity(name, value, value_type, label)
|
|
228
|
-
|
|
229
|
-
assert activity is not None
|
|
230
|
-
assert activity.type == ActivityTypes.trace
|
|
231
|
-
assert activity.name == name
|
|
232
|
-
assert activity.value_type == type(value).__name__
|
|
233
|
-
assert activity.value == value
|
|
234
|
-
assert activity.label == label
|
|
235
|
-
|
|
236
|
-
@pytest.mark.parametrize(
|
|
237
|
-
"activity_locale, text, create_recipient, create_from, create_reply_locale",
|
|
238
|
-
[
|
|
239
|
-
["en-uS", "response", False, True, None],
|
|
240
|
-
["en-uS", "response", False, False, None],
|
|
241
|
-
[None, "", True, False, "en-us"],
|
|
242
|
-
[None, None, True, True, None],
|
|
243
|
-
],
|
|
244
|
-
)
|
|
245
|
-
def test_can_create_reply_activity(
|
|
246
|
-
self, activity_locale, text, create_recipient, create_from, create_reply_locale
|
|
247
|
-
):
|
|
248
|
-
activity = create_test_activity(activity_locale, create_recipient, create_from)
|
|
249
|
-
reply = activity.create_reply(text, locale=create_reply_locale)
|
|
250
|
-
|
|
251
|
-
assert reply is not None
|
|
252
|
-
assert reply.type == ActivityTypes.message
|
|
253
|
-
assert reply.reply_to_id == "123"
|
|
254
|
-
assert reply.service_url == "ServiceUrl123"
|
|
255
|
-
assert reply.channel_id == "ChannelId123"
|
|
256
|
-
assert reply.text == text or reply.text == ""
|
|
257
|
-
assert reply.locale == activity_locale or create_reply_locale
|
|
258
|
-
|
|
259
|
-
if create_recipient:
|
|
260
|
-
assert reply.from_property.id == "ChannelAccount_Id_2"
|
|
261
|
-
assert reply.from_property.name == "ChannelAccount_Name_2"
|
|
262
|
-
else:
|
|
263
|
-
assert reply.from_property is None
|
|
264
|
-
|
|
265
|
-
if create_from:
|
|
266
|
-
assert reply.recipient.id == "ChannelAccount_Id_1"
|
|
267
|
-
assert reply.recipient.name == "ChannelAccount_Name_1"
|
|
268
|
-
else:
|
|
269
|
-
assert reply.recipient is None
|
|
270
|
-
|
|
271
|
-
@pytest.fixture(params=[None, {}, MyChannelData()])
|
|
272
|
-
def channel_data(self, request):
|
|
273
|
-
return request.param
|
|
274
|
-
|
|
275
|
-
@pytest.mark.parametrize(
|
|
276
|
-
"activity, expected",
|
|
277
|
-
[
|
|
278
|
-
[Activity(type=ActivityTypes.message, text="Hello"), True],
|
|
279
|
-
[Activity(type=ActivityTypes.message, text=" \n \t "), False],
|
|
280
|
-
[Activity(type=ActivityTypes.message, text=" "), False],
|
|
281
|
-
[
|
|
282
|
-
Activity(type=ActivityTypes.message, attachments=[], summary="Summary"),
|
|
283
|
-
True,
|
|
284
|
-
],
|
|
285
|
-
[Activity(type=ActivityTypes.message, text=" ", summary="\t"), False],
|
|
286
|
-
[Activity(type=ActivityTypes.message, summary="\t"), False],
|
|
287
|
-
[
|
|
288
|
-
Activity(
|
|
289
|
-
type=ActivityTypes.message,
|
|
290
|
-
text="\n",
|
|
291
|
-
summary="\n",
|
|
292
|
-
attachments=[Attachment(content_type="123")],
|
|
293
|
-
),
|
|
294
|
-
True,
|
|
295
|
-
],
|
|
296
|
-
[
|
|
297
|
-
Activity(
|
|
298
|
-
type=ActivityTypes.message, text="\n", summary="\n", attachments=[]
|
|
299
|
-
),
|
|
300
|
-
False,
|
|
301
|
-
],
|
|
302
|
-
[
|
|
303
|
-
Activity(
|
|
304
|
-
type=ActivityTypes.message,
|
|
305
|
-
text="\n",
|
|
306
|
-
summary="\t",
|
|
307
|
-
attachments=[],
|
|
308
|
-
channel_data=MyChannelData(),
|
|
309
|
-
),
|
|
310
|
-
True,
|
|
311
|
-
],
|
|
312
|
-
[
|
|
313
|
-
Activity(
|
|
314
|
-
type=ActivityTypes.message,
|
|
315
|
-
text="\n",
|
|
316
|
-
summary=" wow ",
|
|
317
|
-
attachments=[],
|
|
318
|
-
channel_data=MyChannelData(),
|
|
319
|
-
),
|
|
320
|
-
True,
|
|
321
|
-
],
|
|
322
|
-
[
|
|
323
|
-
Activity(
|
|
324
|
-
type=ActivityTypes.message,
|
|
325
|
-
text="huh ",
|
|
326
|
-
summary="\t",
|
|
327
|
-
attachments=[],
|
|
328
|
-
channel_data=MyChannelData(),
|
|
329
|
-
),
|
|
330
|
-
True,
|
|
331
|
-
],
|
|
332
|
-
],
|
|
333
|
-
)
|
|
334
|
-
def test_has_content(self, activity, expected):
|
|
335
|
-
assert activity.has_content() == expected
|
|
336
|
-
|
|
337
|
-
@pytest.mark.parametrize(
|
|
338
|
-
"service_url, expected",
|
|
339
|
-
[
|
|
340
|
-
["https://localhost", False],
|
|
341
|
-
["microsoft.com", True],
|
|
342
|
-
["http", False],
|
|
343
|
-
["HTTP", False],
|
|
344
|
-
["api://123", True],
|
|
345
|
-
[" ", True],
|
|
346
|
-
],
|
|
347
|
-
)
|
|
348
|
-
def test_is_from_streaming_connection(self, service_url, expected):
|
|
349
|
-
activity = Activity(type="message", service_url=service_url)
|
|
350
|
-
assert activity.is_from_streaming_connection() == expected
|
|
351
|
-
|
|
352
|
-
def test_serialize_basic(self, activity):
|
|
353
|
-
activity_copy = Activity(
|
|
354
|
-
**activity.model_dump(mode="json", exclude_unset=True, by_alias=True)
|
|
355
|
-
)
|
|
356
|
-
assert activity_copy == activity
|
|
357
|
-
|
|
358
|
-
def test_get_mentions(self):
|
|
359
|
-
activity = Activity(
|
|
360
|
-
type="message",
|
|
361
|
-
entities=[
|
|
362
|
-
Mention(text="Hello"),
|
|
363
|
-
Entity(type="other"),
|
|
364
|
-
Entity(type="mention", text="Another mention"),
|
|
365
|
-
],
|
|
366
|
-
)
|
|
367
|
-
mentions = activity.get_mentions()
|
|
368
|
-
assert mentions == [
|
|
369
|
-
Mention(text="Hello"),
|
|
370
|
-
Entity(type="mention", text="Another mention"),
|
|
371
|
-
]
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import pytest
|
|
2
|
-
from microsoft_agents.activity import TokenResponse
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
def test_token_response_model_token_enforcement():
|
|
6
|
-
with pytest.raises(Exception):
|
|
7
|
-
TokenResponse(token="")
|
|
8
|
-
with pytest.raises(Exception):
|
|
9
|
-
TokenResponse(token=None)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@pytest.mark.parametrize(
|
|
13
|
-
"token_response", [TokenResponse(), TokenResponse(expiration="expiration")]
|
|
14
|
-
)
|
|
15
|
-
def test_token_response_bool_op_false(token_response):
|
|
16
|
-
assert not bool(token_response)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.mark.parametrize(
|
|
20
|
-
"token_response",
|
|
21
|
-
[TokenResponse(token="token"), TokenResponse(token="a", expiration="a")],
|
|
22
|
-
)
|
|
23
|
-
def test_token_response_bool_op_true(token_response):
|
|
24
|
-
assert bool(token_response)
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import pytest
|
|
2
|
-
|
|
3
|
-
from microsoft_agents.activity import Activity, ChannelAccount
|
|
4
|
-
from microsoft_agents.activity._model_utils import (
|
|
5
|
-
ModelFieldHelper,
|
|
6
|
-
SkipNone,
|
|
7
|
-
SkipIf,
|
|
8
|
-
pick_model,
|
|
9
|
-
pick_model_dict,
|
|
10
|
-
)
|
|
11
|
-
|
|
12
|
-
from .activity_tools.testing_model_utils import SkipFalse, SkipEmpty, PickField
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class TestModelUtils:
|
|
16
|
-
|
|
17
|
-
def test_skip_if(self):
|
|
18
|
-
field = SkipIf("foo", lambda v: v == "foo")
|
|
19
|
-
assert field.process("key") == {}
|
|
20
|
-
|
|
21
|
-
@pytest.mark.parametrize(
|
|
22
|
-
"value, expected",
|
|
23
|
-
[
|
|
24
|
-
[None, {}],
|
|
25
|
-
[42, {"field": 42}],
|
|
26
|
-
["foo", {"field": "foo"}],
|
|
27
|
-
],
|
|
28
|
-
)
|
|
29
|
-
def test_skip_none(self, value, expected):
|
|
30
|
-
field = SkipNone(value)
|
|
31
|
-
assert field.process("field") == expected
|
|
32
|
-
|
|
33
|
-
@pytest.mark.parametrize("value", [0, None, [], {}, False, ""])
|
|
34
|
-
def test_skip_false_with_falsy_value(self, value):
|
|
35
|
-
field = SkipFalse(value)
|
|
36
|
-
assert field.process("key") == {}
|
|
37
|
-
|
|
38
|
-
@pytest.mark.parametrize("value", [2, [1, 2, 3], "aha"])
|
|
39
|
-
def test_skip_false_with_truthy_value(self, value):
|
|
40
|
-
field = SkipFalse(value)
|
|
41
|
-
assert field.process("key") == {"key": value}
|
|
42
|
-
|
|
43
|
-
@pytest.mark.parametrize("value", ["", [], set(), {}, tuple()])
|
|
44
|
-
def test_skip_empty_with_empty_value(self, value):
|
|
45
|
-
field = SkipEmpty(value)
|
|
46
|
-
assert field.process("key") == {}
|
|
47
|
-
|
|
48
|
-
@pytest.mark.parametrize("value", ["wow", [2], set("a"), {"a": "b"}])
|
|
49
|
-
def test_skip_empty_with_nonempty_value(self, value):
|
|
50
|
-
field = SkipEmpty(value)
|
|
51
|
-
assert field.process("key") == {"key": value}
|
|
52
|
-
|
|
53
|
-
def test_pick_model(self, mocker):
|
|
54
|
-
recipient = ChannelAccount(id="123", name="foo")
|
|
55
|
-
activity = pick_model(
|
|
56
|
-
Activity,
|
|
57
|
-
type="message",
|
|
58
|
-
id=SkipNone(None),
|
|
59
|
-
from_property=pick_model(
|
|
60
|
-
ChannelAccount,
|
|
61
|
-
id=PickField(recipient),
|
|
62
|
-
aad_object_id=PickField(recipient),
|
|
63
|
-
),
|
|
64
|
-
recipient=pick_model(
|
|
65
|
-
ChannelAccount,
|
|
66
|
-
id=PickField(recipient),
|
|
67
|
-
name=PickField(recipient),
|
|
68
|
-
role=PickField(recipient),
|
|
69
|
-
),
|
|
70
|
-
text=PickField(recipient, "name"),
|
|
71
|
-
)
|
|
72
|
-
expected = Activity(
|
|
73
|
-
type="message",
|
|
74
|
-
from_property=ChannelAccount(id="123"),
|
|
75
|
-
recipient=ChannelAccount(id="123", name="foo"),
|
|
76
|
-
text="foo",
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
assert activity == expected
|
|
80
|
-
assert "id" not in activity.model_fields_set
|
|
81
|
-
assert "aad_object_id" not in activity.from_property.model_fields_set
|
|
82
|
-
assert "role" not in activity.recipient.model_fields_set
|
|
83
|
-
assert "text" in activity.model_fields_set
|
|
84
|
-
|
|
85
|
-
def test_pick_model_dict(self):
|
|
86
|
-
class Foo(ModelFieldHelper):
|
|
87
|
-
def process(self, key):
|
|
88
|
-
return {key: "bar"}
|
|
89
|
-
|
|
90
|
-
class Bar(ModelFieldHelper):
|
|
91
|
-
def process(self, key):
|
|
92
|
-
return {"bar": "bar"}
|
|
93
|
-
|
|
94
|
-
foo = Foo()
|
|
95
|
-
result = foo.process("foo")
|
|
96
|
-
assert result == {"foo": "bar"}
|
|
97
|
-
|
|
98
|
-
res = pick_model_dict(
|
|
99
|
-
a=Foo(),
|
|
100
|
-
b=SkipNone("bar"),
|
|
101
|
-
c=SkipIf("baz", lambda v: v == "baz"),
|
|
102
|
-
d=Foo(),
|
|
103
|
-
e=None,
|
|
104
|
-
f=42,
|
|
105
|
-
bar=7,
|
|
106
|
-
g=Bar(),
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
assert res == {
|
|
110
|
-
"a": "bar",
|
|
111
|
-
"b": "bar",
|
|
112
|
-
"d": "bar",
|
|
113
|
-
"e": None,
|
|
114
|
-
"f": 42,
|
|
115
|
-
"bar": "bar",
|
|
116
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|