Esempio n. 1
0
 def test_exposing_key_works(self):
     ui = TestUI()
     miser = Miser(ui)
     self.assertEqual(miser.get_item_location(Subjects.KEY), -2)
     miser.handle_command(["move", "mat"])
     self.assertEqual(miser.get_item_location(Subjects.KEY),
                      Rooms.FRONT_PORCH)
Esempio n. 2
0
 def test_fix_command(self):
     ui = TestUI()
     miser = Miser(ui)
     # fix valve
     miser.current_position = Rooms.PUMP_HOUSE
     miser.handle_command(["fix", "valve"])
     self.assertEqual(miser.current_position, Rooms.PUMP_HOUSE)
     # fix not parachute
     miser.handle_command(["fix", "bucket"])
     self.assertEqual(miser.current_position, Rooms.PUMP_HOUSE)
     # fix parachute when not here
     miser.handle_command(["fix", "parachute"])
     self.assertEqual(miser.current_position, Rooms.PUMP_HOUSE)
     # fix parachute without ripcord
     miser.current_position = Rooms.CLOSET
     miser.handle_command(["get", "parachute"])
     miser.handle_command(["fix", "parachute"])
     self.assertEqual(miser.current_position, Rooms.CLOSET)
     # fix parachute
     miser.current_position = Rooms.BALLROOM
     miser.flags["organ_playing"] = True
     miser.handle_command(["open", "organ"])
     self.assertEqual(miser.get_item_location(Subjects.RIPCORD),
                      Rooms.BALLROOM)
     miser.handle_command(["get", "ripcord"])
     miser.handle_command(["fix", "parachute"])
     self.assertEqual(miser.current_position, Rooms.BALLROOM)
     # fix it again
     miser.handle_command(["fix", "parachute"])
     self.assertEqual(miser.current_position, Rooms.BALLROOM)
Esempio n. 3
0
 def test_get_and_drop_work(self):
     ui = TestUI()
     miser = Miser(ui)
     self.assertEqual(miser.get_item_location(Subjects.MAT),
                      Rooms.FRONT_PORCH)
     miser.handle_command(["get", "mat"])
     self.assertEqual(miser.get_item_location(Subjects.MAT), -1)
     miser.handle_command(["drop", "mat"])
     self.assertEqual(miser.get_item_location(Subjects.MAT),
                      Rooms.FRONT_PORCH)
     miser.handle_command(["drop", "mat"])
     self.assertEqual(miser.get_item_location(Subjects.MAT),
                      Rooms.FRONT_PORCH)
     miser.handle_command(["get", "mat"])
     miser.handle_command(["get", "mat"])
     self.assertEqual(miser.get_item_location(Subjects.MAT), -1)
     miser.current_position = Rooms.PUMP_HOUSE
     miser.handle_command(["get", "valve"])
     self.assertEqual(miser.subjects[Subjects.VALVE].item_id,
                      Items.UNMOVABLE)
     treasure_count = miser.gathered_treasures
     miser.current_position = Rooms.HEDGE_MAZE5
     miser.handle_command(["get", "leaf"])
     self.assertEqual(miser.gathered_treasures, treasure_count + 1)
     miser.handle_command(["drop", "leaf"])
     self.assertEqual(miser.gathered_treasures, treasure_count + 1)
     miser.current_position = Rooms.WEST_BEDROOM
     miser.handle_command(["get", "penny"])
     self.assertEqual(miser.get_item_location(Subjects.PENNY), -1)
     miser.current_position = Rooms.PORTICO
     miser.handle_command(["drop", "penny"])
     self.assertEqual(miser.rooms[Rooms.BALLROOM].moves[2], Rooms.CHAPEL)
     self.assertEqual(miser.items[Items.PENNY].location, -2)
     miser.current_position = Rooms.BACK_YARD
     miser.handle_command(["get", "cross"])
     self.assertEqual(miser.get_item_location(Subjects.CROSS), -1)
     miser.current_position = Rooms.CHAPEL
     miser.flags["organ_playing"] = False
     miser.handle_command(["drop", "cross"])
     self.assertEqual(miser.flags["organ_playing"], True)