60
|
1 import unittest
|
|
2
|
|
3 import pygame
|
|
4
|
|
5 from gamelib import state
|
|
6
|
|
7 from pygame.locals import SWSURFACE
|
|
8 from gamelib.constants import SCREEN
|
|
9
|
|
10
|
|
11 # We need this stuff set up so we can load images and whatnot.
|
|
12 pygame.display.init()
|
|
13 pygame.display.set_mode(SCREEN, SWSURFACE)
|
|
14
|
|
15
|
|
16 class GameLogicTestCase(unittest.TestCase):
|
|
17 CURRENT_SCENE = None
|
|
18
|
|
19 def setUp(self):
|
|
20 self.state = state.initial_state()
|
|
21 self.state.set_current_scene(self.CURRENT_SCENE)
|
|
22
|
|
23 def set_game_data(self, key, value, thing=None, scene=None):
|
|
24 if scene is None:
|
|
25 scene = self.CURRENT_SCENE
|
|
26 gizmo = self.state.scenes[scene]
|
|
27 if thing is not None:
|
|
28 gizmo = gizmo.things[thing]
|
|
29 gizmo.set_data(key, value)
|
|
30
|
|
31 def assert_game_data(self, key, value, thing=None, scene=None):
|
|
32 if scene is None:
|
|
33 scene = self.CURRENT_SCENE
|
|
34 gizmo = self.state.scenes[scene]
|
|
35 if thing is not None:
|
|
36 gizmo = gizmo.things[thing]
|
|
37 self.assertEquals(value, gizmo.get_data(key))
|
|
38
|
|
39 def interact_thing(self, thing_name, item_name=None):
|
|
40 item = None
|
|
41 if item_name is not None:
|
|
42 item = self.state.items[item_name]
|
|
43 self.state.scenes[self.CURRENT_SCENE].things[thing_name].interact(item)
|