Ejemplo n.º 1
0
 def test_ask_clear_table__first_call__returns_wait_response_state(self):
     error = TaskGroundingError()
     error.error_code = TaskErrorType.UNKNOWN
     error.error_task_name = "Dummy Task"
     clarify_state = dialog_flow.AskClearTableState(self.state_dict, self.container,"newobject")
     clarify_state.error = error
     self.container.speak = Mock()
     return_state = clarify_state.execute()
     self.assertTrue(isinstance(return_state, dialog_flow.WaitForResponseState))
 def test_clarify_task__first_run__returns_wait_response_state(self):
     error = TaskGroundingError()
     error.error_code = TaskErrorType.UNKNOWN
     error.error_task_name = "Dummy Task"
     clarify_state = dialog_flow.AskForClarificationState(
         self.state_dict, self.container)
     clarify_state.error = error
     self.container.speak = Mock()
     return_state = clarify_state.execute()
     self.assertTrue(
         isinstance(return_state, dialog_flow.WaitForResponseState))
Ejemplo n.º 3
0
 def test_ask_clear_table__unclear_response__returns_wait_response_state(self):
     error = TaskGroundingError()
     error.error_code = TaskErrorType.UNKNOWN
     error.error_task_name = "Dummy Task"
     clarify_state = dialog_flow.AskClearTableState(self.state_dict, self.container,"newobject")
     test_entities = [(EntityType.GREETING, "some nonsense")]
     clarify_state.is_first_call=False
     self.container.ner.get_entities = Mock(return_value=test_entities)
     clarify_state.error = error
     self.container.speak = Mock()
     return_state = clarify_state.execute()
     self.assertTrue(isinstance(return_state, dialog_flow.WaitForResponseState))
 def test_validate_task__any_error__returns_ask_for_clarification_state(
         self):
     task_grounding_return = TaskGroundingReturn()
     error = TaskGroundingError()
     error.error_code = TaskErrorType.UNKNOWN
     error.error_task_name = "Dummy Task"
     task_grounding_return.error = error
     validate_task_state = dialog_flow.ValidateTaskState(
         self.state_dict, self.container)
     validate_task_state.state_dict[
         'task_grounding_return'] = task_grounding_return
     self.container.speak = Mock()
     return_state = validate_task_state.execute()
     self.assertTrue(
         isinstance(return_state, dialog_flow.AskForClarificationState))
Ejemplo n.º 5
0
    def test_ask_clear_table__multiple_object__returns_wait_response_state(self):
        error = TaskGroundingError()
        error.error_code = TaskErrorType.UNKNOWN
        error.error_task_name = "Dummy Task"
        clarify_state = dialog_flow.AskClearTableState(self.state_dict, self.container,"newobject")
        test_entities = [(EntityType.AFFIRMATION, "yeah mate")]
        clarify_state.is_first_call=False
        self.container.ner.get_entities = Mock(return_value=test_entities)

        return_object = GroundingReturn()
        return_object.is_success = False
        return_object.error_code = GroundingErrorType.MULTIPLE_REF

        self.container.grounding.learn_new_object = Mock(return_value=return_object)
        clarify_state.error = error
        self.container.speak = Mock()
        return_state = clarify_state.execute()
        self.assertIsInstance(return_state, dialog_flow.WaitForResponseState)
Ejemplo n.º 6
0
    def test_ask_clear_table__existing_object__returns_start_teach_object(self):
        error = TaskGroundingError()
        error.error_code = TaskErrorType.UNKNOWN
        error.error_task_name = "Dummy Task"
        clarify_state = dialog_flow.AskClearTableState(self.state_dict, self.container,"newobject")
        test_entities = [(EntityType.AFFIRMATION, "yeah mate")]
        clarify_state.is_first_call=False
        self.container.ner.get_entities = Mock(return_value=test_entities)

        return_object = GroundingReturn()
        return_object.is_success = False
        return_object.error_code = GroundingErrorType.ALREADY_KNOWN

        self.container.grounding.learn_new_object = Mock(return_value=return_object)
        clarify_state.error = error
        self.container.speak = Mock()
        return_state = clarify_state.execute()
        self.assertIsInstance(return_state, dialog_flow.StartTeachObjectState)
 def test_clarify_task__no_object_with_task__returns_extract_task_state(
         self):
     entities = [(EntityType.TASK, "blue"), (EntityType.LOCATION, "cover"),
                 (EntityType.OBJECT, "next"),
                 (EntityType.LOCATION, "black"),
                 (EntityType.OBJECT, "bottom cover"),
                 (EntityType.LOCATION, "above"),
                 (EntityType.OBJECT, "bottom cover")]
     self.container.ner.get_entities = Mock(return_value=entities)
     error = TaskGroundingError()
     error.error_code = TaskErrorType.NO_OBJECT
     error.error_task_name = "Dummy Task"
     clarify_state = dialog_flow.AskForClarificationState(
         self.state_dict, self.container)
     clarify_state.is_first_run = False
     clarify_state.error = error
     self.container.speak = Mock()
     return_state = clarify_state.execute()
     self.assertTrue(isinstance(return_state, dialog_flow.ExtractTaskState))
Ejemplo n.º 8
0
    def test_ask_clear_table__success__returns_goodness_knows_what(self):
        error = TaskGroundingError()
        error.error_code = TaskErrorType.UNKNOWN
        error.error_task_name = "Dummy Task"
        clarify_state = dialog_flow.AskClearTableState(self.state_dict, self.container,"newobject")
        test_entities = [(EntityType.AFFIRMATION, "yeah mate")]
        clarify_state.is_first_call=False
        self.container.ner.get_entities = Mock(return_value=test_entities)

        return_object = GroundingReturn()
        return_object.is_success = True
        return_object.error_code = None

        self.container.grounding.learn_new_object = Mock(return_value=return_object)
        clarify_state.error = error
        self.container.speak = Mock()
        return_state = clarify_state.execute()
        '''TODO: No idea what a success should return here'''
        self.assertIsInstance(return_state, dialog_flow.WaitForResponseState)
 def test_clarify_task__unknown_task_with_affirmation__returns_start_teach_state(
         self):
     entities = [(EntityType.AFFIRMATION, "blue"),
                 (EntityType.LOCATION, "cover"),
                 (EntityType.OBJECT, "next"),
                 (EntityType.LOCATION, "black"),
                 (EntityType.OBJECT, "bottom cover"),
                 (EntityType.LOCATION, "above"),
                 (EntityType.OBJECT, "bottom cover")]
     self.container.ner.get_entities = Mock(return_value=entities)
     error = TaskGroundingError()
     error.error_code = TaskErrorType.UNKNOWN
     error.error_task_name = "Dummy Task"
     clarify_state = dialog_flow.AskForClarificationState(
         self.state_dict, self.container)
     clarify_state.is_first_run = False
     clarify_state.error = error
     self.container.speak = Mock()
     return_state = clarify_state.execute()
     self.assertTrue(isinstance(return_state, dialog_flow.StartTeachState))