comparison gamelib/tests/game_logic_utils.py @ 252:dfc89bc64fdb

Start of walkthrough "unit test" and associated fixes and tweaks.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 27 Aug 2010 16:45:47 +0200
parents 0bad554d0926
children ca0c2875ad8f
comparison
equal deleted inserted replaced
251:602fe654bd37 252:dfc89bc64fdb
1 import unittest 1 import unittest
2 2
3 import pygame 3 import pygame
4 from pygame.locals import SWSURFACE
4 5
5 from gamelib import state 6 from gamelib import state
6
7 from pygame.locals import SWSURFACE
8 from gamelib.constants import SCREEN 7 from gamelib.constants import SCREEN
9 8
10 9
11 # We need this stuff set up so we can load images and whatnot. 10 # We need this stuff set up so we can load images and whatnot.
12 pygame.display.init() 11 pygame.display.init()
19 18
20 def setUp(self): 19 def setUp(self):
21 self.state = state.initial_state() 20 self.state = state.initial_state()
22 self.state.set_current_scene(self.CURRENT_SCENE) 21 self.state.set_current_scene(self.CURRENT_SCENE)
23 22
24 def set_game_data(self, key, value, thing=None, scene=None): 23 def set_game_data(self, key, value, thing=None):
25 if scene is None: 24 gizmo = self.state.current_scene
26 scene = self.CURRENT_SCENE
27 gizmo = self.state.scenes[scene]
28 if thing is not None: 25 if thing is not None:
29 gizmo = gizmo.things[thing] 26 gizmo = gizmo.things[thing]
30 gizmo.set_data(key, value) 27 gizmo.set_data(key, value)
31 28
32 def assert_game_data(self, key, value, thing=None, scene=None): 29 def assert_game_data(self, key, value, thing=None, scene=None):
33 if scene is None: 30 gizmo = self.state.current_scene
34 scene = self.CURRENT_SCENE 31 if scene is not None:
35 gizmo = self.state.scenes[scene] 32 gizmo = self.state.scenes[scene]
36 if thing is not None: 33 if thing is not None:
37 gizmo = gizmo.things[thing] 34 gizmo = gizmo.things[thing]
38 self.assertEquals(value, gizmo.get_data(key)) 35 self.assertEquals(value, gizmo.get_data(key))
39 36
40 def assert_inventory_item(self, item, in_inventory=True): 37 def assert_inventory_item(self, item, in_inventory=True):
47 self.assertEquals(in_detail, thing in self.state.current_detail.things) 44 self.assertEquals(in_detail, thing in self.state.current_detail.things)
48 45
49 def assert_item_exists(self, item, exists=True): 46 def assert_item_exists(self, item, exists=True):
50 self.assertEquals(exists, item in self.state.items) 47 self.assertEquals(exists, item in self.state.items)
51 48
52 def interact_thing(self, thing, item=None, detail=False): 49 def assert_current_scene(self, scene):
50 self.assertEquals(scene, self.state.current_scene.name)
51
52 def interact_thing(self, thing, item=None):
53 item_obj = None 53 item_obj = None
54 if item is not None: 54 if item is not None:
55 item_obj = self.state.items[item] 55 item_obj = self.state.items[item]
56 thing_container = self.state.current_scene 56 thing_container = self.state.current_detail or self.state.current_scene
57 if detail: 57 result = thing_container.things[thing].interact(item_obj)
58 thing_container = self.state.current_detail 58 if result and result.detail_view:
59 return thing_container.things[thing].interact(item_obj) 59 self.state.set_current_detail(result.detail_view)
60 return result
61