Mercurial > pyntnclick
comparison gamelib/tests/game_logic_utils.py @ 365:45f209fbec2e
Better result handling for tests.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 17:07:54 +0200 |
parents | bfb6c682b4fb |
children | fdf3a6dd476b |
comparison
equal
deleted
inserted
replaced
364:0fed76188796 | 365:45f209fbec2e |
---|---|
55 self.assertEquals(scene, self.state.current_scene.name) | 55 self.assertEquals(scene, self.state.current_scene.name) |
56 | 56 |
57 def assert_current_detail(self, scene): | 57 def assert_current_detail(self, scene): |
58 self.assertEquals(scene, self.state.current_detail.name) | 58 self.assertEquals(scene, self.state.current_detail.name) |
59 | 59 |
60 def handle_result(self, result): | |
61 if result is None: | |
62 return None | |
63 if hasattr(result, 'process'): | |
64 if result.detail_view: | |
65 self.state.set_current_detail(result.detail_view) | |
66 return result | |
67 return [self.handle_result(r) for r in result] | |
68 | |
60 def interact_thing(self, thing, item=None): | 69 def interact_thing(self, thing, item=None): |
61 item_obj = None | 70 item_obj = None |
62 if item is not None: | 71 if item is not None: |
63 self.assert_inventory_item(item) | 72 self.assert_inventory_item(item) |
64 item_obj = self.state.items[item] | 73 item_obj = self.state.items[item] |
65 thing_container = self.state.current_detail or self.state.current_scene | 74 thing_container = self.state.current_detail or self.state.current_scene |
66 result = thing_container.things[thing].interact(item_obj) | 75 result = thing_container.things[thing].interact(item_obj) |
67 if result and result.detail_view: | 76 return self.handle_result(result) |
68 self.state.set_current_detail(result.detail_view) | |
69 return result | |
70 | 77 |
71 def interact_item(self, target_item, item): | 78 def interact_item(self, target_item, item): |
72 self.assert_inventory_item(target_item) | 79 self.assert_inventory_item(target_item) |
73 item_obj = self.state.items[item] | 80 item_obj = self.state.items[item] |
74 target_obj = self.state.items[target_item] | 81 target_obj = self.state.items[target_item] |
75 result = target_obj.interact(item_obj, self.state) | 82 result = target_obj.interact(item_obj, self.state) |
76 if result and result.detail_view: | 83 return self.handle_result(result) |
77 self.state.set_current_detail(result.detail_view) | |
78 return result | |
79 | 84 |