From 20d34025d8b60a94973c4133cc47497c42087a74 Mon Sep 17 00:00:00 2001 From: MattHag <16444067+MattHag@users.noreply.github.com> Date: Sun, 21 Apr 2024 14:32:41 +0200 Subject: [PATCH] diversion: Add unit tests --- tests/logitech_receiver/test_diversion.py | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/logitech_receiver/test_diversion.py b/tests/logitech_receiver/test_diversion.py index 0dd512f5..48c098c7 100644 --- a/tests/logitech_receiver/test_diversion.py +++ b/tests/logitech_receiver/test_diversion.py @@ -55,3 +55,30 @@ def test_load_rule_config(rule_config): for components, expected_components in zip(user_configured_rules.components, expected_rules): for component, expected_component in zip(components.components, expected_components): assert isinstance(component, expected_component) + + +def test_diversion_rule(): + args = [ + { + "Rule": [ # Implement problematic keys for Craft and MX Master + {"Rule": [{"Key": ["Brightness Down", "pressed"]}, {"KeyPress": "XF86_MonBrightnessDown"}]}, + {"Rule": [{"Key": ["Brightness Up", "pressed"]}, {"KeyPress": "XF86_MonBrightnessUp"}]}, + ] + }, + ] + + rule = diversion.Rule(args) + + assert len(rule.components) == 1 + root_rule = rule.components[0] + assert isinstance(root_rule, diversion.Rule) + + assert len(root_rule.components) == 2 + for component in root_rule.components: + assert isinstance(component, diversion.Rule) + assert len(component.components) == 2 + + key = component.components[0] + assert isinstance(key, diversion.Key) + key = component.components[1] + assert isinstance(key, diversion.KeyPress)