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
import TestCase
6 from panda3d
.core
import loadPrcFileData
7 from ya2
.engine
.engine
import Engine
8 from ya2
.engine
.joystick
import JoystickMgr
, JoystickState
9 from ya2
.engine
.gui
.menu
import NavInfoPerPlayer
12 class EngineJoystickTests(TestCase
):
15 loadPrcFileData('', 'window-type none')
16 loadPrcFileData('', 'audio-library-name null')
19 def tearDown(self
): self
.eng
.destroy()
22 self
.assertIsInstance(self
.eng
.joystick_mgr
, JoystickMgr
)
24 def test_get_joystick(self
):
25 j_state
= self
.eng
.joystick_mgr
.get_joystick(0)
26 self
.assertIsInstance(j_state
, JoystickState
)
27 self
.assertEqual(j_state
.x
, 0)
28 self
.assertEqual(j_state
.y
, 0)
29 self
.assertEqual(j_state
.b0
, 0)
30 self
.assertEqual(j_state
.b1
, 0)
31 self
.assertEqual(j_state
.b2
, 0)
32 self
.assertEqual(j_state
.b3
, 0)
33 self
.assertEqual(j_state
.dpad_l
, 0)
34 self
.assertEqual(j_state
.dpad_r
, 0)
35 self
.assertEqual(j_state
.dpad_u
, 0)
36 self
.assertEqual(j_state
.dpad_d
, 0)
37 self
.assertEqual(j_state
.trigger_l
, 0)
38 self
.assertEqual(j_state
.trigger_r
, 0)
39 self
.assertEqual(j_state
.shoulder_l
, 0)
40 self
.assertEqual(j_state
.shoulder_r
, 0)
41 self
.assertEqual(j_state
.stick_l
, 0)
42 self
.assertEqual(j_state
.stick_r
, 0)
44 def test_get_joystick_val(self
):
45 jmgr
= self
.eng
.joystick_mgr
46 self
.assertEqual(jmgr
.get_joystick_val(0, 'face_x'), 0)
47 self
.assertEqual(jmgr
.get_joystick_val(0, 'face_y'), 0)
48 self
.assertEqual(jmgr
.get_joystick_val(0, 'face_a'), 0)
49 self
.assertEqual(jmgr
.get_joystick_val(0, 'face_b'), 0)
50 self
.assertEqual(jmgr
.get_joystick_val(0, 'dpad_l'), 0)
51 self
.assertEqual(jmgr
.get_joystick_val(0, 'dpad_r'), 0)
52 self
.assertEqual(jmgr
.get_joystick_val(0, 'dpad_u'), 0)
53 self
.assertEqual(jmgr
.get_joystick_val(0, 'dpad_d'), 0)
54 self
.assertEqual(jmgr
.get_joystick_val(0, 'trigger_l'), 0)
55 self
.assertEqual(jmgr
.get_joystick_val(0, 'trigger_r'), 0)
56 self
.assertEqual(jmgr
.get_joystick_val(0, 'shoulder_l'), 0)
57 self
.assertEqual(jmgr
.get_joystick_val(0, 'shoulder_r'), 0)
58 self
.assertEqual(jmgr
.get_joystick_val(0, 'stick_l'), 0)
59 self
.assertEqual(jmgr
.get_joystick_val(0, 'stick_r'), 0)
61 def test_bind_keyboard(self
):
62 nav_info
= [NavInfoPerPlayer(
63 'raw-arrow_left', 'raw-arrow_right', 'raw-arrow_up',
64 'raw-arrow_down', 'raw-rcontrol')]
65 self
.eng
.joystick_mgr
.bind_keyboard(nav_info
)
66 self
.assertEqual(self
.eng
.joystick_mgr
.nav
[0].fire
, 'raw-rcontrol')
67 self
.eng
.joystick_mgr
.unbind_keyboard(0)
68 self
.assertIsNone(self
.eng
.joystick_mgr
.nav
[0], None)