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)