예제 #1
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testExternalVerbUnknownWords(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     with self.assertRaises(tale.soul.ParseError) as x:
         soul.process_verb(player, "sit door1")
     self.assertEqual("It's not clear what you mean by 'door1'.", str(x.exception))
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "sit door1 zen", external_verbs={"sit"})
     parsed = x.exception.parsed
     self.assertEqual("sit", parsed.verb)
     self.assertEqual(["door1", "zen"], parsed.args)
     self.assertEqual(["door1", "zen"], parsed.unrecognized)
예제 #2
0
 def testExternalVerbUnknownWords(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     with self.assertRaises(tale.soul.ParseError) as x:
         soul.process_verb(player, "sit door1")
     self.assertEqual("It's not clear what you mean by 'door1'.", str(x.exception))
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "sit door1 zen", external_verbs={"sit"})
     parsed = x.exception.parsed
     self.assertEqual("sit", parsed.verb)
     self.assertEqual(["door1", "zen"], parsed.args)
     self.assertEqual(["door1", "zen"], parsed.unrecognized)
예제 #3
0
 def testAdverbs(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f", "human")
     # check handling of more than one adverb
     with self.assertRaises(tale.errors.ParseError) as ex:
         soul.process_verb(player, "cough sickly and noisily")
     self.assertEqual("You can't do that both sickly and noisily.", str(ex.exception))
     # check handling of adverb prefix where there is 1 unique result
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "cough sic")
     self.assertEqual("You cough sickly.", player_msg)
     self.assertEqual("Julie coughs sickly.", room_msg)
     # check handling of adverb prefix where there are more results
     with self.assertRaises(tale.errors.ParseError) as ex:
         soul.process_verb(player, "cough si")
     self.assertEqual("What adverb did you mean: sickly, sideways, signally, significantly, or silently?", str(ex.exception))
예제 #4
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testAdverbs(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f", "human")
     # check handling of more than one adverb
     with self.assertRaises(tale.errors.ParseError) as ex:
         soul.process_verb(player, "cough sickly and noisily")
     self.assertEqual("You can't do that both sickly and noisily.", str(ex.exception))
     # check handling of adverb prefix where there is 1 unique result
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "cough sic")
     self.assertEqual("You cough sickly.", player_msg)
     self.assertEqual("Julie coughs sickly.", room_msg)
     # check handling of adverb prefix where there are more results
     with self.assertRaises(tale.errors.ParseError) as ex:
         soul.process_verb(player, "cough si")
     self.assertEqual("What adverb did you mean: sickly, sideways, signally, significantly, or silently?", str(ex.exception))
예제 #5
0
 def testMultiTarget(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     philip = tale.npc.NPC("philip", "m")
     kate = tale.npc.NPC("kate", "f", title="Kate")
     cat = tale.npc.NPC("cat", "n", title="hairy cat")
     targets = [philip, kate, cat]
     # peer
     parsed = tale.soul.ParseResult("peer", who_order=targets)
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual(set(targets), who)
     self.assertTrue(player_msg.startswith("You peer at "))
     self.assertTrue("philip" in player_msg and "hairy cat" in player_msg and "Kate" in player_msg)
     self.assertTrue(room_msg.startswith("Julie peers at "))
     self.assertTrue("philip" in room_msg and "hairy cat" in room_msg and "Kate" in room_msg)
     self.assertEqual("Julie peers at you.", target_msg)
     # all/everyone
     player.move(tale.base.Location("somewhere"))
     livings = set(targets)
     livings.add(player)
     player.location.livings = livings
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "smile confusedly at everyone")
     self.assertEqual("smile", verb)
     self.assertEqual(3, len(who))
     self.assertEqual(set(targets), set(who), "player should not be in targets")
     self.assertTrue("philip" in player_msg and "hairy cat" in player_msg and "Kate" in player_msg and not "yourself" in player_msg)
     self.assertTrue("philip" in room_msg and "hairy cat" in room_msg and "Kate" in room_msg and not "herself" in room_msg)
     self.assertEqual("Julie smiles confusedly at you.", target_msg)
예제 #6
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testMultiTarget(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     philip = tale.npc.NPC("philip", "m")
     kate = tale.npc.NPC("kate", "f", title="Kate")
     cat = tale.npc.NPC("cat", "n", title="hairy cat")
     targets = [philip, kate, cat]
     # peer
     parsed = tale.soul.ParseResult("peer", who_order=targets)
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual(set(targets), who)
     self.assertTrue(player_msg.startswith("You peer at "))
     self.assertTrue("philip" in player_msg and "hairy cat" in player_msg and "Kate" in player_msg)
     self.assertTrue(room_msg.startswith("Julie peers at "))
     self.assertTrue("philip" in room_msg and "hairy cat" in room_msg and "Kate" in room_msg)
     self.assertEqual("Julie peers at you.", target_msg)
     # all/everyone
     player.move(tale.base.Location("somewhere"))
     livings = set(targets)
     livings.add(player)
     player.location.livings = livings
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "smile confusedly at everyone")
     self.assertEqual("smile", verb)
     self.assertEqual(3, len(who))
     self.assertEqual(set(targets), set(who), "player should not be in targets")
     self.assertTrue("philip" in player_msg and "hairy cat" in player_msg and "Kate" in player_msg and "yourself" not in player_msg)
     self.assertTrue("philip" in room_msg and "hairy cat" in room_msg and "Kate" in room_msg and "herself" not in room_msg)
     self.assertEqual("Julie smiles confusedly at you.", target_msg)
예제 #7
0
 def testMessageQuoteParse(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     player.move(tale.base.Location("somewhere"))
     player.location.livings = {tale.npc.NPC("max", "m"), player}
     # whisper
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "whisper \"hello there\"")
     self.assertEqual("You whisper 'hello there'.", player_msg)
     self.assertEqual("Julie whispers 'hello there'.", room_msg)
     # whisper to a person
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "whisper to max \"hello there\"")
     self.assertEqual("You whisper 'hello there' to max.", player_msg)
     self.assertEqual("Julie whispers 'hello there' to max.", room_msg)
     # whisper to a person with adverb
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "whisper softly to max \"hello there\"")
     self.assertEqual("You whisper 'hello there' softly to max.", player_msg)
     self.assertEqual("Julie whispers 'hello there' softly to max.", room_msg)
예제 #8
0
 def testDEUX(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     # die
     parsed = tale.soul.ParseResult("die", adverb="suddenly")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You suddenly fall down and play dead.", player_msg)
     self.assertEqual("Julie suddenly falls to the ground, dead.", room_msg)
     # ah
     parsed = tale.soul.ParseResult("ah", adverb="rudely")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You go 'ah' rudely.", player_msg)
     self.assertEqual("Julie goes 'ah' rudely.", room_msg)
     # verb needs a person
     with self.assertRaises(tale.errors.ParseError) as x:
         soul.process_verb(player, "touch")
     self.assertEqual("The verb touch needs a person.", str(x.exception))
예제 #9
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testDEUX(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     # die
     parsed = tale.soul.ParseResult("die", adverb="suddenly")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You suddenly fall down and play dead.", player_msg)
     self.assertEqual("Julie suddenly falls to the ground, dead.", room_msg)
     # ah
     parsed = tale.soul.ParseResult("ah", adverb="rudely")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You go 'ah' rudely.", player_msg)
     self.assertEqual("Julie goes 'ah' rudely.", room_msg)
     # verb needs a person
     with self.assertRaises(tale.errors.ParseError) as x:
         soul.process_verb(player, "touch")
     self.assertEqual("The verb touch needs a person.", str(x.exception))
예제 #10
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testMessageQuoteParse(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     player.move(tale.base.Location("somewhere"))
     player.location.livings = {tale.npc.NPC("max", "m"), player}
     # whisper
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "whisper \"hello there\"")
     self.assertEqual("You whisper 'hello there'.", player_msg)
     self.assertEqual("Julie whispers 'hello there'.", room_msg)
     # whisper to a person
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "whisper to max \"hello there\"")
     self.assertEqual("You whisper 'hello there' to max.", player_msg)
     self.assertEqual("Julie whispers 'hello there' to max.", room_msg)
     # whisper to a person with adverb
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "whisper softly to max \"hello there\"")
     self.assertEqual("You whisper 'hello there' softly to max.", player_msg)
     self.assertEqual("Julie whispers 'hello there' softly to max.", room_msg)
예제 #11
0
 def testUnknownVerb(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     with self.assertRaises(tale.soul.UnknownVerbException) as ex:
         parsed = tale.soul.ParseResult("_unknown_verb_")
         soul.process_verb_parsed(player, parsed)
     self.assertEqual("_unknown_verb_", str(ex.exception))
     self.assertEqual("_unknown_verb_", ex.exception.verb)
     self.assertEqual(None, ex.exception.words)
     self.assertEqual(None, ex.exception.qualifier)
     with self.assertRaises(tale.soul.UnknownVerbException) as ex:
         soul.process_verb(player, "fail _unknown_verb_ herp derp")
     self.assertEqual("_unknown_verb_", ex.exception.verb)
     self.assertEqual("fail", ex.exception.qualifier)
     self.assertEqual(["_unknown_verb_", "herp", "derp"], ex.exception.words)
     self.assertTrue(soul.is_verb("bounce"))
     self.assertFalse(soul.is_verb("_unknown_verb_"))
예제 #12
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testUnknownVerb(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     with self.assertRaises(tale.soul.UnknownVerbException) as ex:
         parsed = tale.soul.ParseResult("_unknown_verb_")
         soul.process_verb_parsed(player, parsed)
     self.assertEqual("_unknown_verb_", str(ex.exception))
     self.assertEqual("_unknown_verb_", ex.exception.verb)
     self.assertEqual(None, ex.exception.words)
     self.assertEqual(None, ex.exception.qualifier)
     with self.assertRaises(tale.soul.UnknownVerbException) as ex:
         soul.process_verb(player, "fail _unknown_verb_ herp derp")
     self.assertEqual("_unknown_verb_", ex.exception.verb)
     self.assertEqual("fail", ex.exception.qualifier)
     self.assertEqual(["_unknown_verb_", "herp", "derp"], ex.exception.words)
     self.assertTrue(soul.is_verb("bounce"))
     self.assertFalse(soul.is_verb("_unknown_verb_"))
예제 #13
0
 def testBodypart(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     targets = [tale.npc.NPC("max", "m")]
     parsed = tale.soul.ParseResult("beep", who_order=targets)
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You triumphantly beep max on the nose.", player_msg)
     self.assertEqual("Julie triumphantly beeps max on the nose.", room_msg)
     self.assertEqual("Julie triumphantly beeps you on the nose.", target_msg)
     parsed.bodypart = "arm"
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You triumphantly beep max on the arm.", player_msg)
     self.assertEqual("Julie triumphantly beeps max on the arm.", room_msg)
     self.assertEqual("Julie triumphantly beeps you on the arm.", target_msg)
     # check handling of more than one bodypart
     with self.assertRaises(tale.errors.ParseError) as ex:
         soul.process_verb(player, "kick max side knee")
     self.assertEqual("You can't do that both in the side and on the knee.", str(ex.exception))
예제 #14
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testBodypart(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     targets = [tale.npc.NPC("max", "m")]
     parsed = tale.soul.ParseResult("beep", who_order=targets)
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You triumphantly beep max on the nose.", player_msg)
     self.assertEqual("Julie triumphantly beeps max on the nose.", room_msg)
     self.assertEqual("Julie triumphantly beeps you on the nose.", target_msg)
     parsed.bodypart = "arm"
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual("You triumphantly beep max on the arm.", player_msg)
     self.assertEqual("Julie triumphantly beeps max on the arm.", room_msg)
     self.assertEqual("Julie triumphantly beeps you on the arm.", target_msg)
     # check handling of more than one bodypart
     with self.assertRaises(tale.errors.ParseError) as ex:
         soul.process_verb(player, "kick max side knee")
     self.assertEqual("You can't do that both in the side and on the knee.", str(ex.exception))
예제 #15
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testQualifierParse(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "dont scream")
     self.assertEqual("don't scream", verb, "expected spell-corrected qualifier")
     self.assertEqual("You don't scream loudly.", player_msg)
     self.assertEqual("Julie doesn't scream loudly.", room_msg)
     self.assertEqual("Julie doesn't scream loudly.", target_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "don't scream")
     self.assertEqual("don't scream", verb)
     self.assertEqual("You don't scream loudly.", player_msg)
     self.assertEqual("Julie doesn't scream loudly.", room_msg)
     self.assertEqual("Julie doesn't scream loudly.", target_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "don't scream \"I have no idea\"")
     self.assertEqual("don't scream", verb)
     self.assertEqual("You don't scream 'I have no idea' loudly.", player_msg)
     self.assertEqual("Julie doesn't scream 'I have no idea' loudly.", room_msg)
     self.assertEqual("Julie doesn't scream 'I have no idea' loudly.", target_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "fail sit")
     self.assertEqual("fail sit", verb)
     self.assertEqual("You try to sit down, but fail miserably.", player_msg)
     self.assertEqual("Julie tries to sit down, but fails miserably.", room_msg)
예제 #16
0
 def testQualifierParse(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "dont scream")
     self.assertEqual("don't scream", verb, "expected spell-corrected qualifier")
     self.assertEqual("You don't scream loudly.", player_msg)
     self.assertEqual("Julie doesn't scream loudly.", room_msg)
     self.assertEqual("Julie doesn't scream loudly.", target_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "don't scream")
     self.assertEqual("don't scream", verb)
     self.assertEqual("You don't scream loudly.", player_msg)
     self.assertEqual("Julie doesn't scream loudly.", room_msg)
     self.assertEqual("Julie doesn't scream loudly.", target_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "don't scream \"I have no idea\"")
     self.assertEqual("don't scream", verb)
     self.assertEqual("You don't scream 'I have no idea' loudly.", player_msg)
     self.assertEqual("Julie doesn't scream 'I have no idea' loudly.", room_msg)
     self.assertEqual("Julie doesn't scream 'I have no idea' loudly.", target_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "fail sit")
     self.assertEqual("fail sit", verb)
     self.assertEqual("You try to sit down, but fail miserably.", player_msg)
     self.assertEqual("Julie tries to sit down, but fails miserably.", room_msg)
예제 #17
0
 def testExternalVerbs(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     with self.assertRaises(tale.soul.UnknownVerbException):
         soul.process_verb(player, "externalverb")
     verb, _ = soul.process_verb(player, "sit", external_verbs=set())
     self.assertEqual("sit", verb)
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "sit", external_verbs={"sit"})
     self.assertEqual("sit", str(x.exception))
     self.assertEqual("sit", x.exception.parsed.verb)
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "externalverb", external_verbs={"externalverb"})
     self.assertIsInstance(x.exception.parsed, tale.soul.ParseResult)
     self.assertEqual("externalverb", x.exception.parsed.verb)
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "who who", external_verbs={"who"})
     self.assertEqual("who", x.exception.parsed.verb, "who as external verb needs to be processed as normal arg, not as adverb")
     self.assertEqual(["who"], x.exception.parsed.args, "who as external verb needs to be processed as normal arg, not as adverb")
예제 #18
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testExternalVerbs(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     with self.assertRaises(tale.soul.UnknownVerbException):
         soul.process_verb(player, "externalverb")
     verb, _ = soul.process_verb(player, "sit", external_verbs=set())
     self.assertEqual("sit", verb)
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "sit", external_verbs={"sit"})
     self.assertEqual("sit", str(x.exception))
     self.assertEqual("sit", x.exception.parsed.verb)
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "externalverb", external_verbs={"externalverb"})
     self.assertIsInstance(x.exception.parsed, tale.soul.ParseResult)
     self.assertEqual("externalverb", x.exception.parsed.verb)
     with self.assertRaises(tale.soul.NonSoulVerb) as x:
         soul.process_verb(player, "who who", external_verbs={"who"})
     self.assertEqual("who", x.exception.parsed.verb, "who as external verb needs to be processed as normal arg, not as adverb")
     self.assertEqual(["who"], x.exception.parsed.args, "who as external verb needs to be processed as normal arg, not as adverb")
예제 #19
0
 def testVerbTarget(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     player.title = "the great Julie, destroyer of worlds"
     player.move(tale.base.Location("somewhere"))
     npc_max = tale.npc.NPC("max", "m")
     player.location.livings = {npc_max, player}
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "grin")
     self.assertEqual("grin", verb)
     self.assertTrue(len(who) == 0)
     self.assertIsInstance(who, (set, frozenset), "targets must be a set for O(1) lookups")
     self.assertEqual("You grin evilly.", player_msg)
     self.assertEqual("The great Julie, destroyer of worlds grins evilly.", room_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "grin at max")
     self.assertEqual("grin", verb)
     self.assertTrue(len(who) == 1)
     self.assertIsInstance(who, (set, frozenset), "targets must be a set for O(1) lookups")
     self.assertEqual("max", list(who)[0].name)
     self.assertEqual("You grin evilly at max.", player_msg)
     self.assertEqual("The great Julie, destroyer of worlds grins evilly at max.", room_msg)
     self.assertEqual("The great Julie, destroyer of worlds grins evilly at you.", target_msg)
     # parsed results
     parsed = soul.parse(player, "grin at all")
     self.assertEqual("grin", parsed.verb)
     self.assertEqual([npc_max], parsed.who_order, "parse('all') must result in only the npc, not the player")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertTrue(len(who) == 1)
     self.assertIsInstance(who, (set, frozenset), "targets must be a set for O(1) lookups")
     self.assertEqual("max", list(who)[0].name)
     self.assertEqual("You grin evilly at max.", player_msg)
     parsed = soul.parse(player, "grin at all and me")
     self.assertEqual("grin", parsed.verb)
     self.assertEqual([npc_max, player], parsed.who_order, "parse('all and me') must include npc and the player")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual({npc_max}, who, "player should no longer be part of the remaining targets")
     self.assertTrue("yourself" in player_msg and "max" in player_msg)
예제 #20
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testVerbTarget(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f")
     player.title = "the great Julie, destroyer of worlds"
     player.move(tale.base.Location("somewhere"))
     npc_max = tale.npc.NPC("max", "m")
     player.location.livings = {npc_max, player}
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "grin")
     self.assertEqual("grin", verb)
     self.assertTrue(len(who) == 0)
     self.assertIsInstance(who, (set, frozenset), "targets must be a set for O(1) lookups")
     self.assertEqual("You grin evilly.", player_msg)
     self.assertEqual("The great Julie, destroyer of worlds grins evilly.", room_msg)
     verb, (who, player_msg, room_msg, target_msg) = soul.process_verb(player, "grin at max")
     self.assertEqual("grin", verb)
     self.assertTrue(len(who) == 1)
     self.assertIsInstance(who, (set, frozenset), "targets must be a set for O(1) lookups")
     self.assertEqual("max", list(who)[0].name)
     self.assertEqual("You grin evilly at max.", player_msg)
     self.assertEqual("The great Julie, destroyer of worlds grins evilly at max.", room_msg)
     self.assertEqual("The great Julie, destroyer of worlds grins evilly at you.", target_msg)
     # parsed results
     parsed = soul.parse(player, "grin at all")
     self.assertEqual("grin", parsed.verb)
     self.assertEqual([npc_max], parsed.who_order, "parse('all') must result in only the npc, not the player")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertTrue(len(who) == 1)
     self.assertIsInstance(who, (set, frozenset), "targets must be a set for O(1) lookups")
     self.assertEqual("max", list(who)[0].name)
     self.assertEqual("You grin evilly at max.", player_msg)
     parsed = soul.parse(player, "grin at all and me")
     self.assertEqual("grin", parsed.verb)
     self.assertEqual([npc_max, player], parsed.who_order, "parse('all and me') must include npc and the player")
     who, player_msg, room_msg, target_msg = soul.process_verb_parsed(player, parsed)
     self.assertEqual({npc_max}, who, "player should no longer be part of the remaining targets")
     self.assertTrue("yourself" in player_msg and "max" in player_msg)
예제 #21
0
 def testUnrecognisedWord(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f", "human")
     with self.assertRaises(tale.errors.ParseError):
         soul.process_verb(player, "cough hubbabubba")
예제 #22
0
파일: test_soul.py 프로젝트: skirtap/Tale
 def testUnrecognisedWord(self):
     soul = tale.soul.Soul()
     player = tale.player.Player("julie", "f", "human")
     with self.assertRaises(tale.errors.ParseError):
         soul.process_verb(player, "cough hubbabubba")