Mercurial > pyntnclick
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 |