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))
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))
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)
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))
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))