aea.test_tools.test_skill

This module contains test case classes based on pytest for AEA skill testing.

BaseSkillTestCase Objects

class BaseSkillTestCase()

A class to test a skill.

skill

 | @property
 | skill() -> Skill

Get the skill.

get_quantity_in_outbox

 | get_quantity_in_outbox() -> int

Get the quantity of envelopes in the outbox.

get_message_from_outbox

 | get_message_from_outbox() -> Optional[Message]

Get message from outbox.

get_quantity_in_decision_maker_inbox

 | get_quantity_in_decision_maker_inbox() -> int

Get the quantity of messages in the decision maker inbox.

get_message_from_decision_maker_inbox

 | get_message_from_decision_maker_inbox() -> Optional[Message]

Get message from decision maker inbox.

assert_quantity_in_outbox

 | assert_quantity_in_outbox(expected_quantity) -> None

Assert the quantity of messages in the outbox.

assert_quantity_in_decision_making_queue

 | assert_quantity_in_decision_making_queue(expected_quantity) -> None

Assert the quantity of messages in the decision maker queue.

message_has_attributes

 | @staticmethod
 | message_has_attributes(actual_message: Message, message_type: Type[Message], **kwargs, ,) -> Tuple[bool, str]

Evaluates whether a message's attributes match the expected attributes provided.

Arguments:

  • actual_message: the actual message
  • message_type: the expected message type
  • kwargs: other expected message attributes

Returns:

boolean result of the evaluation and accompanied message

build_incoming_message

 | build_incoming_message(message_type: Type[Message], performative: Message.Performative, dialogue_reference: Optional[Tuple[str, str]] = None, message_id: Optional[int] = None, target: Optional[int] = None, to: Optional[Address] = None, sender: Address = COUNTERPARTY_NAME, **kwargs, ,) -> Message

Quickly create an incoming message with the provided attributes.

For any attribute not provided, the corresponding default value in message is used.

Arguments:

  • message_type: the type of the message
  • dialogue_reference: the dialogue_reference
  • message_id: the message_id
  • target: the target
  • performative: the performative
  • to: the 'to' address
  • sender: the 'sender' address
  • kwargs: other attributes

Returns:

the created incoming message

build_incoming_message_for_skill_dialogue

 | build_incoming_message_for_skill_dialogue(dialogue: Dialogue, performative: Message.Performative, message_type: Optional[Type[Message]] = None, dialogue_reference: Optional[Tuple[str, str]] = None, message_id: Optional[int] = None, target: Optional[int] = None, to: Optional[Address] = None, sender: Optional[Address] = None, **kwargs, ,) -> Message

Quickly create an incoming message with the provided attributes for a dialogue.

For any attribute not provided, a value based on the dialogue is used. These values are shown in parantheses in the list of parameters below.

NOTE: This method must be used with care. The dialogue provided is part of the skill which is being tested. Because for any unspecified attribute, a "correct" value is used, the test will be, by design, insured to pass on these values.

Arguments:

  • dialogue: the dialogue to which the incoming message is intended
  • performative: the performative of the message
  • message_type: (the message_class of the provided dialogue) the type of the message
  • dialogue_reference: (the dialogue_reference of the provided dialogue) the dialogue reference of the message
  • message_id: (the id of the last message in the provided dialogue + 1) the id of the message
  • target: (the id of the last message in the provided dialogue) the target of the message
  • to: (the agent address associated with this skill) the receiver of the message
  • sender: (the counterperty in the provided dialogue) the sender of the message
  • kwargs: other attributes

Returns:

the created incoming message

prepare_skill_dialogue

 | prepare_skill_dialogue(dialogues: Dialogues, messages: Tuple[DialogueMessage, ...], counterparty: Address = COUNTERPARTY_NAME) -> Dialogue

Quickly create a dialogue.

The 'messages' argument is a tuple of DialogueMessages. For every DialogueMessage (performative, contents, is_incoming, target): - if 'is_incoming' is not provided: for the first message it is assumed False (outgoing), for any other message, it is the opposite of the one preceding it. - if 'target' is not provided: for the first message it is assumed 0, for any other message, it is the index of the message before it in the tuple of messages + 1.

Arguments:

  • dialogues: a dialogues class
  • counterparty: the message_id
  • messages: the dialogue_reference

Returns:

the created incoming message

setup

 | @classmethod
 | setup(cls) -> None

Set up the skill test case.