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
.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')
24 self
.engine
= Engine()
25 game_obj
= GameObject()
26 ai
= AiColleague(game_obj
)
27 self
.assertIsInstance(ai
, AiColleague
)
30 class AudioTests(TestCase
):
33 loadPrcFileData('', 'window-type none')
34 loadPrcFileData('', 'audio-library-name null')
40 self
.engine
= Engine()
41 game_obj
= GameObject()
42 audio
= AudioColleague(game_obj
)
43 self
.assertIsInstance(audio
, AudioColleague
)
46 class ColleagueTests(TestCase
):
49 loadPrcFileData('', 'window-type none')
50 loadPrcFileData('', 'audio-library-name null')
56 self
.engine
= Engine()
57 game_obj
= GameObject()
58 colleague
= Colleague(game_obj
)
59 self
.assertIsInstance(colleague
, Colleague
)
62 class EventTests(TestCase
):
65 loadPrcFileData('', 'window-type none')
66 loadPrcFileData('', 'audio-library-name null')
72 self
.engine
= Engine()
73 game_obj
= GameObject()
74 event
= EventColleague(game_obj
)
75 self
.assertIsInstance(event
, EventColleague
)
78 class FsmTests(TestCase
):
81 loadPrcFileData('', 'window-type none')
82 loadPrcFileData('', 'audio-library-name null')
88 self
.engine
= Engine()
89 game_obj
= GameObject()
90 fsm
= FsmColleague(game_obj
)
91 self
.assertIsInstance(fsm
, FsmColleague
)
94 class GfxTests(TestCase
):
97 loadPrcFileData('', 'window-type none')
98 loadPrcFileData('', 'audio-library-name null')
101 self
.engine
.destroy()
104 self
.engine
= Engine()
105 game_obj
= GameObject()
106 gfx
= GfxColleague(game_obj
)
107 self
.assertIsInstance(gfx
, GfxColleague
)
110 class GuiTests(TestCase
):
113 loadPrcFileData('', 'window-type none')
114 loadPrcFileData('', 'audio-library-name null')
117 self
.engine
.destroy()
120 self
.engine
= Engine()
121 game_obj
= GameObject()
122 gui
= GuiColleague(game_obj
)
123 self
.assertIsInstance(gui
, GuiColleague
)
126 class LogicTests(TestCase
):
129 loadPrcFileData('', 'window-type none')
130 loadPrcFileData('', 'audio-library-name null')
133 self
.engine
.destroy()
136 self
.engine
= Engine()
137 game_obj
= GameObject()
138 logic
= LogicColleague(game_obj
)
139 self
.assertIsInstance(logic
, LogicColleague
)
142 class PhysicsTests(TestCase
):
145 loadPrcFileData('', 'window-type none')
146 loadPrcFileData('', 'audio-library-name null')
149 self
.engine
.destroy()
152 self
.engine
= Engine()
153 game_obj
= GameObject()
154 phys
= PhysColleague(game_obj
)
155 self
.assertIsInstance(phys
, PhysColleague
)
158 class GameObjectInstance(GameObject
):
161 GameObject
.__init
__(self
)
162 self
.fsm
= FsmColleague(self
)
163 self
.event
= EventColleague(self
)
164 self
.ai
= AiColleague(self
)
165 self
.phys
= PhysColleague(self
)
166 self
.audio
= AudioColleague(self
)
167 self
.logic
= LogicColleague(self
)
168 self
.gui
= GuiColleague(self
)
169 self
.gfx
= GfxColleague(self
)
182 class GameObjectTests(TestCase
):
185 loadPrcFileData('', 'window-type none')
186 loadPrcFileData('', 'audio-library-name null')
189 self
.engine
.destroy()
191 @patch.object(GfxColleague
, 'destroy')
192 @patch.object(GuiColleague
, 'destroy')
193 @patch.object(LogicColleague
, 'destroy')
194 @patch.object(AudioColleague
, 'destroy')
195 @patch.object(PhysColleague
, 'destroy')
196 @patch.object(AiColleague
, 'destroy')
197 @patch.object(EventColleague
, 'destroy')
198 @patch.object(FsmColleague
, 'destroy')
200 self
, mock_fsm_destroy
, mock_event_destroy
, mock_ai_destroy
,
201 mock_phys_destroy
, mock_audio_destroy
, mock_logic_destroy
,
202 mock_gui_destroy
, mock_gfx_destroy
):
203 self
.engine
= Engine()
204 mock_event_destroy
.__name
__ = 'destroy'
205 game_obj
= GameObjectInstance()
206 self
.assertIsInstance(game_obj
, GameObject
)
208 assert mock_fsm_destroy
.called
209 assert mock_event_destroy
.called
210 assert mock_ai_destroy
.called
211 assert mock_phys_destroy
.called
212 assert mock_audio_destroy
.called
213 assert mock_logic_destroy
.called
214 assert mock_gui_destroy
.called
215 assert mock_gfx_destroy
.called