31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import unittest
|
|
from unittest.mock import MagicMock
|
|
from pygameControls import Controller
|
|
|
|
class TestController(unittest.TestCase):
|
|
def setUp(self):
|
|
self.mock_js = MagicMock()
|
|
self.mock_js.get_button.side_effect = lambda i: 1 if i == 0 else 0
|
|
self.mock_js.get_axis.side_effect = lambda i: 0.5 if i == 1 else 0.0
|
|
self.mock_js.get_name.return_value = "DualSense Wireless Controller"
|
|
self.mock_js.get_guid.return_value = "030000004c0500000c0e000011010000"
|
|
|
|
self.controller = Controller(self.mock_js)
|
|
|
|
def test_button_press(self):
|
|
self.assertEqual(self.controller.get_button(0), 1)
|
|
self.assertEqual(self.controller.get_button(1), 0)
|
|
|
|
def test_axis_reading(self):
|
|
self.assertAlmostEqual(self.controller.get_axis(1), 0.5)
|
|
|
|
def test_profile_mapping(self):
|
|
self.assertEqual(self.controller.get_mapping(), "Sony DualSense")
|
|
|
|
def test_custom_config(self):
|
|
cfg = self.controller.get_custom_config()
|
|
self.assertIn("cross", cfg)
|
|
self.assertEqual(cfg["cross"], 0)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |