Mercurial > pyntnclick
comparison gamelib/tests/test_walkthrough.py @ 452:fdf3a6dd476b
Walkthrough test /almost/ finished.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 29 Aug 2010 00:58:14 +0200 |
parents | bfb6c682b4fb |
children | a51565a59df3 |
comparison
equal
deleted
inserted
replaced
451:8b1951cb7710 | 452:fdf3a6dd476b |
---|---|
2 | 2 |
3 | 3 |
4 class TestWalkthrough(game_logic_utils.GameLogicTestCase): | 4 class TestWalkthrough(game_logic_utils.GameLogicTestCase): |
5 | 5 |
6 CURRENT_SCENE = 'cryo' | 6 CURRENT_SCENE = 'cryo' |
7 | |
8 def close_detail(self): | |
9 self.state.set_current_detail(None) | |
10 | 7 |
11 def move_to(self, target): | 8 def move_to(self, target): |
12 self.interact_thing(self.state.current_scene.name + '.door') | 9 self.interact_thing(self.state.current_scene.name + '.door') |
13 self.assert_current_scene('map') | 10 self.assert_current_scene('map') |
14 self.interact_thing('map.to' + target) | 11 self.interact_thing('map.to' + target) |
15 self.assert_current_scene(target) | 12 self.assert_current_scene(target) |
16 | 13 |
17 def test_walkthrough_complete(self): | 14 # def test_walkthrough_complete(self): |
18 self.fail("Walkthrough incomplete.") | 15 # self.fail("Walkthrough incomplete.") |
19 | 16 |
20 def test_walkthrough(self): | 17 def test_walkthrough(self): |
21 """A complete game walkthrough. | 18 """A complete game walkthrough. |
22 | 19 |
23 This should only contain interacts and assertions.""" | 20 This should only contain interacts and assertions.""" |
43 self.assert_game_data('door', 'open', 'cryo.door') | 40 self.assert_game_data('door', 'open', 'cryo.door') |
44 self.assert_inventory_item('titanium_leg') | 41 self.assert_inventory_item('titanium_leg') |
45 | 42 |
46 # Go to the mess. | 43 # Go to the mess. |
47 self.move_to('mess') | 44 self.move_to('mess') |
45 | |
46 # Check that life support is broken | |
47 self.assert_game_data('life support status', 'broken') | |
48 | 48 |
49 # Get the cans. | 49 # Get the cans. |
50 self.assert_game_data('cans_available', 3, 'mess.cans') | 50 self.assert_game_data('cans_available', 3, 'mess.cans') |
51 self.interact_thing('mess.cans') | 51 self.interact_thing('mess.cans') |
52 self.assert_inventory_item('full_can.0') | 52 self.assert_inventory_item('full_can.0') |
100 self.assert_game_data('status', 'broken', 'mess.tubes') | 100 self.assert_game_data('status', 'broken', 'mess.tubes') |
101 | 101 |
102 # Go to the bridge. | 102 # Go to the bridge. |
103 self.move_to('bridge') | 103 self.move_to('bridge') |
104 | 104 |
105 # Check that the AI is online. | |
106 self.assert_game_data('ai status', 'online') | |
107 | |
105 # Get the stethoscope. | 108 # Get the stethoscope. |
106 self.interact_thing('bridge.stethoscope') | 109 self.interact_thing('bridge.stethoscope') |
107 self.assert_inventory_item('stethoscope') | 110 self.assert_inventory_item('stethoscope') |
108 self.assert_scene_thing('bridge.stethoscope', False) | 111 self.assert_scene_thing('bridge.stethoscope', False) |
109 | 112 |
116 self.close_detail() | 119 self.close_detail() |
117 | 120 |
118 # Go to the crew quarters. | 121 # Go to the crew quarters. |
119 self.move_to('crew_quarters') | 122 self.move_to('crew_quarters') |
120 | 123 |
124 # Get the poster. | |
125 self.interact_thing('crew.poster') | |
126 self.assert_inventory_item('escher_poster') | |
127 self.assert_scene_thing('crew.poster', False) | |
128 | |
121 # Get the fishbowl. | 129 # Get the fishbowl. |
122 self.assert_game_data('has_bowl', True, 'crew.fishbowl') | 130 self.assert_game_data('has_bowl', True, 'crew.fishbowl') |
123 self.interact_thing('crew.fishbowl') | 131 self.interact_thing('crew.fishbowl') |
124 self.assert_game_data('has_bowl', False, 'crew.fishbowl') | 132 self.assert_game_data('has_bowl', False, 'crew.fishbowl') |
125 self.assert_inventory_item('fishbowl') | 133 self.assert_inventory_item('fishbowl') |
140 self.assert_inventory_item('helmet') | 148 self.assert_inventory_item('helmet') |
141 self.assert_inventory_item('fishbowl', False) | 149 self.assert_inventory_item('fishbowl', False) |
142 | 150 |
143 # Go to the engine room. | 151 # Go to the engine room. |
144 self.move_to('engine') | 152 self.move_to('engine') |
153 | |
154 # Check that the engines are broken. | |
155 self.assert_game_data('engine online', False) | |
145 | 156 |
146 # Get the can opener. | 157 # Get the can opener. |
147 self.interact_thing('engine.canopener') | 158 self.interact_thing('engine.canopener') |
148 self.assert_inventory_item('canopener') | 159 self.assert_inventory_item('canopener') |
149 self.assert_scene_thing('engine.canopener', False) | 160 self.assert_scene_thing('engine.canopener', False) |
206 # Replace the tubes. | 217 # Replace the tubes. |
207 self.interact_thing('mess.tubes', 'cryo_pipes_three') | 218 self.interact_thing('mess.tubes', 'cryo_pipes_three') |
208 self.assert_inventory_item('cryo_pipes_three', False) | 219 self.assert_inventory_item('cryo_pipes_three', False) |
209 self.assert_game_data('status', 'replaced', 'mess.tubes') | 220 self.assert_game_data('status', 'replaced', 'mess.tubes') |
210 | 221 |
222 # Check that life support is replaced | |
223 self.assert_game_data('life support status', 'replaced') | |
224 | |
211 # Tape up the tubes. | 225 # Tape up the tubes. |
212 self.interact_thing('mess.tubes', 'duct_tape') | 226 self.interact_thing('mess.tubes', 'duct_tape') |
213 self.assert_game_data('status', 'fixed', 'mess.tubes') | 227 self.assert_game_data('status', 'fixed', 'mess.tubes') |
214 | 228 |
229 # Check that life support is fixed | |
230 self.assert_game_data('life support status', 'fixed') | |
231 | |
232 # Get the detergent bottle. | |
233 self.interact_thing('mess.detergent') | |
234 self.assert_inventory_item('detergent_bottle') | |
235 | |
236 # Go to the cryo room. | |
237 self.move_to('cryo') | |
238 | |
239 # Fill the detergent bottle. | |
240 self.interact_thing('cryo.pool', 'detergent_bottle') | |
241 self.assert_inventory_item('detergent_bottle', False) | |
242 self.assert_inventory_item('full_detergent_bottle') | |
243 | |
244 # Go to the engine room. | |
245 self.move_to('engine') | |
246 | |
247 # Patch the cracked pipe. | |
248 self.assert_game_data('fixed', False, 'engine.cracked_pipe') | |
249 self.interact_thing('engine.cracked_pipe', 'duct_tape') | |
250 self.assert_game_data('fixed', True, 'engine.cracked_pipe') | |
251 | |
252 # Fill the cryofluid receptacles. | |
253 self.assert_game_data('filled', False, 'engine.cryo_containers') | |
254 self.interact_thing('engine.cryo_container_receptacle', 'full_detergent_bottle') | |
255 self.assert_game_data('filled', True, 'engine.cryo_containers') | |
256 self.assert_inventory_item('full_detergent_bottle', False) | |
257 | |
258 # Remove the burned-out superconductor. | |
259 self.assert_game_data('present', True, 'engine.superconductor') | |
260 self.assert_game_data('working', False, 'engine.superconductor') | |
261 self.interact_thing('engine.superconductor', 'machete') | |
262 self.assert_game_data('present', False, 'engine.superconductor') | |
263 self.assert_game_data('working', False, 'engine.superconductor') | |
264 | |
265 # Tape up new superconductor. | |
266 self.interact_item('superconductor', 'duct_tape') | |
267 self.assert_inventory_item('superconductor', False) | |
268 self.assert_inventory_item('taped_superconductor') | |
269 | |
270 # Install superconductor. | |
271 self.interact_thing('engine.superconductor', 'taped_superconductor') | |
272 self.assert_inventory_item('taped_superconductor', False) | |
273 self.assert_game_data('present', True, 'engine.superconductor') | |
274 self.assert_game_data('working', True, 'engine.superconductor') | |
275 | |
276 # Check that we've fixed the engines. | |
277 self.assert_game_data('engine online', True) | |
278 | |
279 # Go to the bridge. | |
280 self.move_to('bridge') | |
281 | |
282 # Show JIM the poster. | |
283 self.interact_thing('bridge.camera', 'escher_poster') | |
284 self.assert_game_data('ai status', 'looping') | |
285 | |
286 # Get at JIM. | |
287 self.assert_game_data('ai panel', 'closed') | |
288 self.interact_thing('jim_panel', 'machete') | |
289 self.assert_game_data('ai panel', 'open') | |
290 | |
291 # Break JIM. | |
292 self.interact_thing('jim_panel', 'machete') | |
293 self.assert_game_data('ai panel', 'broken') | |
294 | |
295 # Check that we've turned off JIM. | |
296 self.assert_game_data('ai status', 'dead') | |
297 | |
298 # Bring up nav console. | |
299 self.interact_thing('bridge.comp') | |
300 self.assert_current_detail('bridge_comp_detail') | |
301 self.interact_thing('bridge_comp.nav_tab') | |
302 self.assert_game_data('tab', 'nav') | |
303 | |
304 # Go somewhere interesting. | |
305 self.interact_thing('bridge_comp.nav_line2') | |
306 |