def test_message_nearby_location(self): plaza = Location("plaza") road = Location("road") house = Location("house") attic = Location("attic") plaza.add_exits([Exit("north", road, "road leads north"), Exit("door", house, "door to a house")]) road.add_exits([Exit("south", plaza, "plaza to the south")]) house.add_exits([Exit("door", plaza, "door to the plaza"), Exit("ladder", attic, "dusty attic")]) attic.add_exits([Exit("ladder", house, "the house")]) wiretap_plaza = Wiretap(plaza) wiretap_road = Wiretap(road) wiretap_house = Wiretap(house) wiretap_attic = Wiretap(attic) util.message_nearby_locations(plaza, "boing") pubsub.sync() self.assertEqual([], wiretap_plaza.msgs, "the plaza doesnt receive tells") self.assertEqual([], wiretap_attic.msgs, "the attic is too far away to receive msgs") self.assertTrue(("road", "boing") in wiretap_road.msgs) self.assertTrue( ("road", "The sound is coming from the south.") in wiretap_road.msgs, "road should give sound direction" ) self.assertTrue(("house", "boing") in wiretap_house.msgs) self.assertTrue( ("house", "You can't hear where the sound is coming from.") in wiretap_house.msgs, "in the house you can't locate the sound direction", )
def do_cry(self, ctx): self.tell_others("{Title} yells: welcome everyone!") message_nearby_locations(self.location, "Someone nearby is yelling: welcome everyone!") ctx.driver.defer(random.randint(20, 40), self.do_cry)