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()