1 from pathlib
import Path
3 if '' in sys
.path
: sys
.path
.remove('')
4 sys
.path
.append(str(Path(__file__
).parent
.parent
.parent
))
5 from unittest
.mock
import patch
6 from unittest
import TestCase
7 from panda3d
.core
import loadPrcFileData
8 #from ya2.engine.engine import Engine
9 from ya2
.patterns
.gameobject
import AiColleague
, AudioColleague
, EventColleague
, \
10 FsmColleague
, GameObject
, GfxColleague
, GuiColleague
, LogicColleague
, \
11 PhysColleague
, Colleague
14 class AiTests(TestCase
):
17 loadPrcFileData('', 'window-type none')
18 loadPrcFileData('', 'audio-library-name null')
22 #self.engine.destroy()
25 #self.engine = Engine()
26 game_obj
= GameObject()
27 ai
= AiColleague(game_obj
)
28 self
.assertIsInstance(ai
, AiColleague
)
31 class AudioTests(TestCase
):
34 loadPrcFileData('', 'window-type none')
35 loadPrcFileData('', 'audio-library-name null')
39 #self.engine.destroy()
42 #self.engine = Engine()
43 game_obj
= GameObject()
44 audio
= AudioColleague(game_obj
)
45 self
.assertIsInstance(audio
, AudioColleague
)
48 class ColleagueTests(TestCase
):
51 loadPrcFileData('', 'window-type none')
52 loadPrcFileData('', 'audio-library-name null')
56 #self.engine.destroy()
59 #self.engine = Engine()
60 game_obj
= GameObject()
61 colleague
= Colleague(game_obj
)
62 self
.assertIsInstance(colleague
, Colleague
)
65 class EventTests(TestCase
):
68 loadPrcFileData('', 'window-type none')
69 loadPrcFileData('', 'audio-library-name null')
73 #self.engine.destroy()
76 #self.engine = Engine()
77 game_obj
= GameObject()
78 event
= EventColleague(game_obj
)
79 self
.assertIsInstance(event
, EventColleague
)
82 class FsmTests(TestCase
):
85 loadPrcFileData('', 'window-type none')
86 loadPrcFileData('', 'audio-library-name null')
90 #self.engine.destroy()
93 #self.engine = Engine()
94 game_obj
= GameObject()
95 fsm
= FsmColleague(game_obj
)
96 self
.assertIsInstance(fsm
, FsmColleague
)
99 class GfxTests(TestCase
):
102 loadPrcFileData('', 'window-type none')
103 loadPrcFileData('', 'audio-library-name null')
107 #self.engine.destroy()
110 #self.engine = Engine()
111 game_obj
= GameObject()
112 gfx
= GfxColleague(game_obj
)
113 self
.assertIsInstance(gfx
, GfxColleague
)
116 class GuiTests(TestCase
):
119 loadPrcFileData('', 'window-type none')
120 loadPrcFileData('', 'audio-library-name null')
124 #self.engine.destroy()
128 #self.engine = Engine()
129 game_obj
= GameObject()
130 gui
= GuiColleague(game_obj
)
131 self
.assertIsInstance(gui
, GuiColleague
)
134 class LogicTests(TestCase
):
137 loadPrcFileData('', 'window-type none')
138 loadPrcFileData('', 'audio-library-name null')
142 #self.engine.destroy()
146 #self.engine = Engine()
147 game_obj
= GameObject()
148 logic
= LogicColleague(game_obj
)
149 self
.assertIsInstance(logic
, LogicColleague
)
152 class PhysicsTests(TestCase
):
155 loadPrcFileData('', 'window-type none')
156 loadPrcFileData('', 'audio-library-name null')
160 #self.engine.destroy()
164 #self.engine = Engine()
165 game_obj
= GameObject()
166 phys
= PhysColleague(game_obj
)
167 self
.assertIsInstance(phys
, PhysColleague
)
170 class GameObjectInstance(GameObject
):
173 GameObject
.__init
__(self
)
174 self
.fsm
= FsmColleague(self
)
175 self
.event
= EventColleague(self
)
176 self
.ai
= AiColleague(self
)
177 self
.phys
= PhysColleague(self
)
178 self
.audio
= AudioColleague(self
)
179 self
.logic
= LogicColleague(self
)
180 self
.gui
= GuiColleague(self
)
181 self
.gfx
= GfxColleague(self
)
194 class GameObjectTests(TestCase
):
197 loadPrcFileData('', 'window-type none')
198 loadPrcFileData('', 'audio-library-name null')
202 #self.engine.destroy()
204 @patch.object(GfxColleague
, 'destroy')
205 @patch.object(GuiColleague
, 'destroy')
206 @patch.object(LogicColleague
, 'destroy')
207 @patch.object(AudioColleague
, 'destroy')
208 @patch.object(PhysColleague
, 'destroy')
209 @patch.object(AiColleague
, 'destroy')
210 @patch.object(EventColleague
, 'destroy')
211 @patch.object(FsmColleague
, 'destroy')
213 self
, mock_fsm_destroy
, mock_event_destroy
, mock_ai_destroy
,
214 mock_phys_destroy
, mock_audio_destroy
, mock_logic_destroy
,
215 mock_gui_destroy
, mock_gfx_destroy
):
216 #self.engine = Engine()
217 mock_event_destroy
.__name
__ = 'destroy'
218 game_obj
= GameObjectInstance()
219 self
.assertIsInstance(game_obj
, GameObject
)
221 assert mock_fsm_destroy
.called
222 assert mock_event_destroy
.called
223 assert mock_ai_destroy
.called
224 assert mock_phys_destroy
.called
225 assert mock_audio_destroy
.called
226 assert mock_logic_destroy
.called
227 assert mock_gui_destroy
.called
228 assert mock_gfx_destroy
.called