Пример #1
0
 def test_tree_buildup(self):
     config = Config("../resources/devices.yaml")
     source_devices = SourceDevicesMock(config)
     target_devices = TargetDevices(config)
     event_tree = EventTree(config, source_devices, target_devices)
     self.assertIsNotNone(
         save_fetch(lambda: event_tree.tree["digital"]["EV_KEY"]["103"][
             "xbox1"]["driver"]))
     self.assertEqual(
         int(
             save_fetch(lambda: event_tree.tree["digital"]["EV_KEY"]["103"][
                 "xbox1"]["value"])), -1)
     self.assertIsNotNone(
         save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["103"][
             "xbox1"]["driver"]))
     self.assertIsNotNone(
         save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["103"][
             "xbox2"]["driver"]))
     self.assertIsNotNone(
         save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["105"][
             "exec1"]["driver"]))
     self.assertIsNotNone(
         save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["105"][
             "exec1"]["ev_meta"]))
     self.assertIsNotNone(
         save_fetch(lambda: event_tree.tree["analog_left"]["EV_KEY"]["105"][
             "exec1"]["driver"]))
Пример #2
0
 def test_device_match(self):
     devices = TargetDevices(Config("../resources/devices.yaml"))
     self.assertEqual(len(devices.drivers), 5, "5 devices found")
     self.assertTrue(devices.drivers["xbox1"] is not None)
     self.assertTrue(devices.drivers["xbox2"] is not None)
     self.assertTrue(devices.drivers["mouse1"] is not None)
     self.assertTrue(devices.drivers["keybd1"] is not None)
Пример #3
0
    def _device_match(self, device: evdev.InputDevice):

        for key in save_fetch(lambda: self.config.inputs, {}):
            name, name_re, phys, phys_re, rel_pos, vendor, product, exclusive, i_max, i_min, i_deadzone = self.config.get_config_input_params(
                key)

            device_match_string = str(self.config.inputs[key])

            found = Config.full_match(device, name, name_re, phys, phys_re,
                                      vendor, product)

            if found:
                if exclusive:
                    try:
                        device.grab()
                    except Exception as e:
                        print(e)
                        pass
                if save_fetch(
                        lambda: self._matched_devices[device_match_string],
                        False) is True:
                    return False, None
                accessor_key = name or phys or name_re or phys_re or vendor or product
                already_processed = save_fetch(
                    lambda: self.matched[accessor_key], 1)
                if already_processed == rel_pos:
                    self._matched_devices[device_match_string] = True
                    return True, key
                else:
                    self.matched[accessor_key] = already_processed + 1
        return False, None
Пример #4
0
    def test_udev_event_handling(self):
        config = Config("../resources/devices.yaml")
        eventcontroller = EventControllerMock(config)
        listener = UdevListenerMock(eventcontroller)

        device1 = UdevDeviceMock("Ultimarc_UltraStik", "Ultimarc_Ultra-Stik_Player_1")
        self.assertTrue(eventcontroller.started)
        self.assertTrue(eventcontroller.restarted_cnt == 0)
        listener.trigger_event_usb("remove", device1)
        self.assertFalse(eventcontroller.started)
        listener.trigger_event_input("add", device1)
        self.assertTrue(eventcontroller.started)
        self.assertTrue(eventcontroller.restarted_cnt > 0)
Пример #5
0
 def run_pid(self):
     with PIDFile(self.args.pidfile):
         self.config = Config(self.args.conf)
         self.evtcl = EventController(self.config)
         asyncio.get_event_loop().run_forever()
Пример #6
0
 def test_overlay_toml(self):
     conf = Config("../resources/devices.toml")
     conf.overlay("../resources/overlay.yaml")
     self._assert_overlayed_structure(conf)
Пример #7
0
 def test_basic_config_toml(self):
     conf = Config("../resources/devices.toml")
     self._assert_basic_structure(conf)
Пример #8
0
 def test_basic_config_json5(self):
     conf = Config("../resources/devices.json5")
     self._assert_basic_structure(conf)
Пример #9
0
 def test_basic_template(self):
     conf = Config("../resources/devices.json5.vtpl")
     self._assert_basic_structure(conf)
Пример #10
0
    def test_device_parsing(self):

        self.devices = SourceDevicesMock(Config("../resources/devices.yaml"))

        asyncio.run(self.assertAll())