diff gamelib/tests/game_logic_utils.py @ 254:ca0c2875ad8f

More test fixes.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 27 Aug 2010 17:35:15 +0200
parents dfc89bc64fdb
children a1ffc919d0c1
line wrap: on
line diff
--- a/gamelib/tests/game_logic_utils.py	Fri Aug 27 17:32:05 2010 +0200
+++ b/gamelib/tests/game_logic_utils.py	Fri Aug 27 17:35:15 2010 +0200
@@ -20,6 +20,11 @@
         self.state = state.initial_state()
         self.state.set_current_scene(self.CURRENT_SCENE)
 
+    def tearDown(self):
+        for item in self.state.items.values():
+            if isinstance(item, state.CloneableItem):
+                type(item)._counter = 0
+
     def set_game_data(self, key, value, thing=None):
         gizmo = self.state.current_scene
         if thing is not None:
@@ -52,6 +57,7 @@
     def interact_thing(self, thing, item=None):
         item_obj = None
         if item is not None:
+            self.assert_inventory_item(item)
             item_obj = self.state.items[item]
         thing_container = self.state.current_detail or self.state.current_scene
         result = thing_container.things[thing].interact(item_obj)
@@ -59,3 +65,12 @@
             self.state.set_current_detail(result.detail_view)
         return result
 
+    def interact_item(self, target_item, item):
+        self.assert_inventory_item(target_item)
+        item_obj = self.state.items[item]
+        target_obj = self.state.items[target_item]
+        result = target_obj.interact(item_obj, self.state)
+        if result and result.detail_view:
+            self.state.set_current_detail(result.detail_view)
+        return result
+