diff gamelib/tests/test_walkthrough.py @ 355:bfb6c682b4fb

Updated walkthrough test as far as completed environmental puzzle.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 28 Aug 2010 16:34:35 +0200
parents ca0c2875ad8f
children fdf3a6dd476b
line wrap: on
line diff
--- a/gamelib/tests/test_walkthrough.py	Sat Aug 28 16:30:43 2010 +0200
+++ b/gamelib/tests/test_walkthrough.py	Sat Aug 28 16:34:35 2010 +0200
@@ -31,7 +31,7 @@
 
         # Get the titanium leg.
         self.interact_thing('cryo.unit.1')
-        self.assertEquals('cryo_detail', self.state.current_detail.name)
+        self.assert_current_detail('cryo_detail')
         self.assert_detail_thing('cryo.titanium_leg')
         self.interact_thing('cryo.titanium_leg')
         self.assert_detail_thing('cryo.titanium_leg', False)
@@ -50,11 +50,13 @@
         self.assert_game_data('cans_available', 3, 'mess.cans')
         self.interact_thing('mess.cans')
         self.assert_inventory_item('full_can.0')
+        self.assert_game_data('cans_available', 2, 'mess.cans')
         self.interact_thing('mess.cans')
         self.assert_inventory_item('full_can.1')
+        self.assert_game_data('cans_available', 1, 'mess.cans')
         self.interact_thing('mess.cans')
         self.assert_inventory_item('full_can.2')
-        self.assert_game_data('cans_available', 0, 'mess.cans')
+        self.assert_scene_thing('mess.cans', False)
 
         # Bash one of the cans.
         self.assert_item_exists('dented_can.0', False)
@@ -77,12 +79,17 @@
         self.assert_game_data('fixed', True, 'cryo.pipe.left')
         self.interact_thing('cryo.pipe.left', 'machete')
         self.assert_game_data('fixed', False, 'cryo.pipe.left')
-        self.assert_inventory_item('cryo_pipe.0')
+        self.assert_inventory_item('tube_fragment.0')
 
-        self.assert_game_data('fixed', True, 'cryo.pipe.right')
-        self.interact_thing('cryo.pipe.right', 'machete')
-        self.assert_game_data('fixed', False, 'cryo.pipe.right')
-        self.assert_inventory_item('cryo_pipe.1')
+        self.assert_game_data('fixed', True, 'cryo.pipe.right.top')
+        self.interact_thing('cryo.pipe.right.top', 'machete')
+        self.assert_game_data('fixed', False, 'cryo.pipe.right.top')
+        self.assert_inventory_item('tube_fragment.1')
+
+        self.assert_game_data('fixed', True, 'cryo.pipe.right.bottom')
+        self.interact_thing('cryo.pipe.right.bottom', 'machete')
+        self.assert_game_data('fixed', False, 'cryo.pipe.right.bottom')
+        self.assert_inventory_item('tube_fragment.2')
 
         # Go to the mess.
         self.move_to('mess')
@@ -92,3 +99,116 @@
         self.interact_thing('mess.tubes', 'machete')
         self.assert_game_data('status', 'broken', 'mess.tubes')
 
+        # Go to the bridge.
+        self.move_to('bridge')
+
+        # Get the stethoscope.
+        self.interact_thing('bridge.stethoscope')
+        self.assert_inventory_item('stethoscope')
+        self.assert_scene_thing('bridge.stethoscope', False)
+
+        # Get the superconductor.
+        self.interact_thing('bridge.massagechair_base')
+        self.assert_current_detail('chair_detail')
+        self.interact_thing('bridge.superconductor')
+        self.assert_inventory_item('superconductor')
+        self.assert_detail_thing('bridge.superconductor', False)
+        self.close_detail()
+
+        # Go to the crew quarters.
+        self.move_to('crew_quarters')
+
+        # Get the fishbowl.
+        self.assert_game_data('has_bowl', True, 'crew.fishbowl')
+        self.interact_thing('crew.fishbowl')
+        self.assert_game_data('has_bowl', False, 'crew.fishbowl')
+        self.assert_inventory_item('fishbowl')
+
+        # Crack the safe.
+        self.assert_game_data('is_cracked', False, 'crew.safe')
+        self.interact_thing('crew.safe', 'stethoscope')
+        self.assert_game_data('is_cracked', True, 'crew.safe')
+
+        # Get the duct tape.
+        self.assert_game_data('has_tape', True, 'crew.safe')
+        self.interact_thing('crew.safe')
+        self.assert_game_data('has_tape', False, 'crew.safe')
+        self.assert_inventory_item('duct_tape')
+
+        # Make the helmet.
+        self.interact_item('fishbowl', 'duct_tape')
+        self.assert_inventory_item('helmet')
+        self.assert_inventory_item('fishbowl', False)
+
+        # Go to the engine room.
+        self.move_to('engine')
+
+        # Get the can opener.
+        self.interact_thing('engine.canopener')
+        self.assert_inventory_item('canopener')
+        self.assert_scene_thing('engine.canopener', False)
+
+        # Open the cans.
+        self.interact_item('full_can.2', 'canopener')
+        self.assert_inventory_item('full_can.2', False)
+        self.assert_inventory_item('empty_can.0')
+
+        self.interact_item('full_can.0', 'canopener')
+        self.assert_inventory_item('full_can.0', False)
+        self.assert_inventory_item('empty_can.1')
+
+        self.interact_item('dented_can.0', 'canopener')
+        self.assert_inventory_item('dented_can.0', False)
+        self.assert_inventory_item('empty_can.2')
+
+        # Go to the machine room.
+        self.move_to('machine')
+
+        # Weld pipes and cans.
+        self.assert_game_data('contents', set(), 'machine.welder.slot')
+        self.interact_thing('machine.welder.slot', 'tube_fragment.0')
+        self.assert_inventory_item('tube_fragment.0', False)
+        self.assert_game_data('contents', set(['tube']), 'machine.welder.slot')
+        self.interact_thing('machine.welder.slot', 'empty_can.1')
+        self.assert_inventory_item('empty_can.1', False)
+        self.assert_game_data('contents', set(['tube', 'can']), 'machine.welder.slot')
+        self.interact_thing('machine.welder.button')
+        self.assert_game_data('contents', set(), 'machine.welder.slot')
+        self.assert_inventory_item('cryo_pipes_one')
+
+        self.assert_game_data('contents', set(), 'machine.welder.slot')
+        self.interact_thing('machine.welder.slot', 'tube_fragment.2')
+        self.assert_inventory_item('tube_fragment.2', False)
+        self.assert_game_data('contents', set(['tube']), 'machine.welder.slot')
+        self.interact_thing('machine.welder.slot', 'empty_can.2')
+        self.assert_inventory_item('empty_can.2', False)
+        self.assert_game_data('contents', set(['tube', 'can']), 'machine.welder.slot')
+        self.interact_thing('machine.welder.button')
+        self.assert_game_data('contents', set(), 'machine.welder.slot')
+        self.assert_inventory_item('cryo_pipes_one', False)
+        self.assert_inventory_item('cryo_pipes_two')
+
+        self.assert_game_data('contents', set(), 'machine.welder.slot')
+        self.interact_thing('machine.welder.slot', 'tube_fragment.1')
+        self.assert_inventory_item('tube_fragment.1', False)
+        self.assert_game_data('contents', set(['tube']), 'machine.welder.slot')
+        self.interact_thing('machine.welder.slot', 'empty_can.0')
+        self.assert_inventory_item('empty_can.0', False)
+        self.assert_game_data('contents', set(['tube', 'can']), 'machine.welder.slot')
+        self.interact_thing('machine.welder.button')
+        self.assert_game_data('contents', set(), 'machine.welder.slot')
+        self.assert_inventory_item('cryo_pipes_two', False)
+        self.assert_inventory_item('cryo_pipes_three')
+
+        # Go to the mess.
+        self.move_to('mess')
+
+        # Replace the tubes.
+        self.interact_thing('mess.tubes', 'cryo_pipes_three')
+        self.assert_inventory_item('cryo_pipes_three', False)
+        self.assert_game_data('status', 'replaced', 'mess.tubes')
+
+        # Tape up the tubes.
+        self.interact_thing('mess.tubes', 'duct_tape')
+        self.assert_game_data('status', 'fixed', 'mess.tubes')
+