Esempio n. 1
0
 def test_nearbyobject_here(self):
     pattern = parser.NearbyObject(self.player)
     self.assert_parse(pattern, "here", self.lobby)
     with locks.authority_of(locks.SYSTEM):
         here = db.Object("here", self.lobby)
     db.store(here)
     pattern = parser.NearbyObject(self.player)
     self.assert_parse(pattern, "here", here)
Esempio n. 2
0
 def test_nearbyobject_me(self):
     pattern = parser.NearbyObject(self.player)
     self.assert_parse(pattern, "me", self.player)
     with locks.authority_of(locks.SYSTEM):
         me = db.Object("me", self.lobby)
     db.store(me)
     pattern = parser.NearbyObject(self.player)
     self.assert_parse(pattern, "me", me)
Esempio n. 3
0
    def test_nearbyobject_priority_success(self):
        items = [("an", "ant"), ("horse", "horse"), ("ho", "horse"),
                 ("cher", "cherry"), ("cheese", "cheese")]
        pattern = parser.NearbyObject(self.player, priority="room")

        for name, item in items:
            self.assert_parse(pattern, item, self.objects[item])
        self.assert_parse(pattern, "cat", self.objects["room_cat"])

        pattern = parser.NearbyObject(self.player, priority="inventory")
        self.assert_parse(pattern, "cat", self.objects["inv_cat"])
Esempio n. 4
0
 def test_nearbyobject_my_success(self):
     near_player = parser.NearbyObject(self.player)
     for phrase in ["my apple", "my app"]:
         self.assert_parse(near_player, phrase, self.objects["apple"])
     self.assert_parse(near_player, "my horse",
                       self.objects["horse figurine"])
     self.assert_parse(near_player, "my cat", self.objects["inv_cat"])
Esempio n. 5
0
 def test_nearbyobject_my_notfound(self):
     for item in ["ant", "frog", "asdf"]:
         pattern = parser.NearbyObject(self.player)
         self.assert_error_message(parser.NotFoundError,
                                   "I don't know of an object in your "
                                   "inventory called \"{}\"".format(item),
                                   pattern.parseString,
                                   "my " + item, parseAll=True)
Esempio n. 6
0
 def test_nearbyobject_priority_ambiguous(self):
     pattern = parser.NearbyObject(self.player, priority="room")
     self.assertRaises(parser.AmbiguityError,
                       pattern.parseString, "f", parseAll=True)
     self.assertRaises(parser.AmbiguityError, pattern.parseString,
                       "ch", parseAll=True)
     e = self.assertRaises(parser.AmbiguityError, pattern.parseString,
                           "a", parseAll=True)
     a_names = ["abacus", "ant"]
     a_matches = [(i, self.objects[i]) for i in a_names]
     self.assertEqual(sorted(e.matches), sorted(a_matches))
Esempio n. 7
0
 def test_nearbyobject_player(self):
     pattern = parser.NearbyObject(self.player)
     self.assert_parse(pattern, "PlayersNeighbor", self.neighbor)
Esempio n. 8
0
 def test_nearbyobject_priority_notfound(self):
     pattern = parser.NearbyObject(self.player, priority="inventory")
     self.assert_error_message(parser.NotFoundError,
                               "I don't know of a nearby object called "
                               "\"asdf\"",
                               pattern.parseString, "asdf", parseAll=True)
Esempio n. 9
0
 def test_nearbyobject_room(self):
     self.assert_parse(parser.NearbyObject(self.player), "lobby", self.lobby)
Esempio n. 10
0
 def test_nearbyobject_nopriority_notfound(self):
     self.assert_error_message(parser.NotFoundError,
                               "I don't know of a nearby object called "
                               "\"asdf\"",
                               parser.NearbyObject(self.player).parseString,
                               "asdf", parseAll=True)
Esempio n. 11
0
 def test_nearbyobject_nopriority_ambiguous(self):
     for item in ["a", "cat", "h"]:
         self.assertRaises(parser.AmbiguityError,
                           parser.NearbyObject(self.player).parseString,
                           item, parseAll=True)
Esempio n. 12
0
 def test_nearbyobject_nopriority_success(self):
     for item in ["ant", "frog", "apple", "ape plushie"]:
         self.assert_parse(parser.NearbyObject(self.player), item,
                           self.objects[item])
Esempio n. 13
0
 def test_nearbyobject_my_redherring(self):
     with locks.authority_of(locks.SYSTEM):
         obj = db.Object("my herring", self.lobby)
     db.store(obj)
     self.assert_parse(parser.NearbyObject(self.player), "my herr", obj)
Esempio n. 14
0
 def test_nearbyobject_my_ambiguous(self):
     self.assertRaises(parser.AmbiguityError,
                       parser.NearbyObject(self.player).parseString,
                       "my ap", parseAll=True)
Esempio n. 15
0
 def args(cls, player):
     item = parser.ObjectIn(player)
     destination = parser.NearbyObject(player)
     return (item("item") + pyp.Keyword("to") + destination("destination")
            | destination("destination") + item("item")
            | item("item") + pyp.Keyword("in") + destination("destination"))