def test_room_traversal(self): start_room = OutsideRoom() end_room = HallwayRoom() start_room.add_exit("north", end_room) end_room.add_item(Item("feather")) self.assertIn(start_room.about, start_room.describe()) self.assertTrue(start_room.describe().startswith(start_room.name)) possible_exits = start_room.possible_exits() new_room = start_room.move(possible_exits[0]) self.assertIsInstance(new_room, Room) self.assertEqual(new_room.about, end_room.about) self.assertIn(end_room.about, new_room.describe()) self.assertIn("feather", new_room.describe()) possible_exits = new_room.possible_exits() self.assertEqual(possible_exits, [])
def setUp(self): super(TestScript, self).setUp() self.player = Player(gender="male", age="10", hair_color="blue") # capture stdout from game loop self.stdout = StringIO.StringIO() self._orig_stdout = sys.stdout sys.stdout = self.stdout # initialize rooms outside = OutsideRoom() hallway = HallwayRoom() guard = Guard("Guard 1") hallway.add_item(guard) # connect rooms outside.add_exit("in", hallway) hallway.add_exit("out", outside) # initialize game and play player = Player(gender="female", age="74", hair_color="red") self.game = Game(player, rooms=[outside, hallway], script=["quit"])