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)
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)
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)