def test_bad_region(self): """Test talkback for a command with a bad region.""" location = ObjectEntity("aslkjal") response = CommandResponse( Command(None, None, None, location, None, None, GO_ACTION), NoSuchLocationError(location.name)) self.assertEqual(self.interpreter.interpret(response), ResponseInterpreter.NO_LOCATION.format(location.name))
def test_unknown(self): """Test talkback for an action we cannot perform.""" unknown = "eat" response = CommandResponse( Command(None, None, None, None, None, None, unknown), UnknownActionError()) self.assertEqual(self.interpreter.interpret(response), ResponseInterpreter.CANNOT.format(unknown))
def test_go(self): """Test talkback for a go command.""" location = ObjectEntity("hallway") response = CommandResponse( Command(None, None, None, location, None, None, GO_ACTION), None) self.assertEqual( self.interpreter.interpret(response), ResponseInterpreter.GOTIT_LONG.format( "", GO_ACTION, ResponseInterpreter.PREP_REGION.format( "to", "", repr(location.name))) + '.')
def test_location(self): """Test talkback for a location command.""" location = ObjectEntity("hallway") command = Command(None, ObjectEntity(DEFUSE_ACTION), None, location, None, None, ACTIVATE_ACTION) response = CommandResponse(command, None) self.assertEqual( self.interpreter.interpret(response), ResponseInterpreter.GOTIT_LONG.format( "", repr(DEFUSE_ACTION), ResponseInterpreter.PREP_REGION.format( "in", "", repr(location.name))) + '.')
def test_defuse(self): """Test talkback for a defuse command.""" bomb = "bomb" command = Command( None, ObjectEntity(DEFUSE_ACTION), None, None, None, None, ACTIVATE_ACTION, Command(None, ObjectEntity(bomb), None, None, None, None, SEE_ACTION)) response = CommandResponse(command, None) self.assertEqual( self.interpreter.interpret(response), ResponseInterpreter.CONDITION.format(bomb) + ", " + ResponseInterpreter.GOTIT.format("", DEFUSE_ACTION) + '.')
def test_quantification(self): """Test talkback for a quantified command.""" location = ObjectEntity("rooms") response = CommandResponse( Command(None, None, None, location, None, None, GO_ACTION), None) rooms = ['r1', 'r2', 'r3'] response.command.additional_data[ADDITIONAL_DATA_QUANTIFIER] = rooms self.assertEqual( self.interpreter.interpret(response), ResponseInterpreter.GOTIT_LONG.format( "", GO_ACTION, ResponseInterpreter.PREP_REGION.format( "to", "s", _and_join(rooms))) + '.')
def test_misunderstand(self): """Test talkback for failure to extract a command.""" response = CommandResponse(None, None) self.assertEqual(self.interpreter.interpret(response), ResponseInterpreter.MISUNDERSTAND)
def test_abort(self): """Test talkback for a crash.""" response = CommandResponse(None, AbortError()) self.assertEqual(self.interpreter.interpret(response), ResponseInterpreter.CRASH)