Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
sezanzeb committed Oct 16, 2024
1 parent 55718ed commit 55fd3cc
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 37 deletions.
14 changes: 5 additions & 9 deletions inputremapper/gui/data_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,15 +250,11 @@ def get_newest_preset_name(self) -> Name:
if not self.active_group:
raise DataManagementError("Cannot find newest preset: Group is not set")

paths = [
(path, os.path.getmtime(path))
for path in glob.glob(
os.path.join(
glob.escape(PathUtils.get_preset_path(self.active_group.name)),
"*.json",
)
)
]
pattern = os.path.join(
glob.escape(PathUtils.get_preset_path(self.active_group.name)),
"*.json",
)
paths = [(path, os.path.getmtime(path)) for path in glob.glob(pattern)]
if not paths:
raise FileNotFoundError()

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ class _Fixtures:
capabilities={evdev.ecodes.EV_KEY: keyboard_keys},
phys="usb-0000:03:00.0-3/input1",
info=evdev.device.DeviceInfo(2, 1, 2, 1),
name="Qux/Device?",
name="Qux/[Device]?",
path="/dev/input/event52",
)

Expand Down
16 changes: 9 additions & 7 deletions tests/unit/test_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def f(groups):
self.message_broker.subscribe(MessageType.groups, f)
self.message_broker.signal(MessageType.init)
self.assertEqual(
["Foo Device", "Foo Device 2", "Bar Device", "gamepad", "Qux/Device?"],
["Foo Device", "Foo Device 2", "Bar Device", "gamepad", "Qux/[Device]?"],
list(calls[-1].groups.keys()),
)

Expand Down Expand Up @@ -408,26 +408,28 @@ def test_rename_preset(self):
self.assertTrue(os.path.exists(PathUtils.get_preset_path("Foo Device", "foo")))

def test_rename_preset_sanitized(self):
Preset(PathUtils.get_preset_path("Qux/Device?", "bla")).save()
Preset(PathUtils.get_preset_path("Qux/[Device]?", "bla")).save()

self.assertTrue(os.path.isfile(PathUtils.get_preset_path("Qux/Device?", "bla")))
self.assertTrue(
os.path.isfile(PathUtils.get_preset_path("Qux/[Device]?", "bla"))
)
self.assertFalse(
os.path.exists(PathUtils.get_preset_path("Qux/Device?", "blubb"))
os.path.exists(PathUtils.get_preset_path("Qux/[Device]?", "blubb"))
)

self.data_manager.load_group("Qux/Device?")
self.data_manager.load_group("Qux/[Device]?")
self.data_manager.load_preset("bla")
self.controller.rename_preset(new_name="foo:/bar")

# all functions expect the true name, which is also shown to the user, but on
# the file system it always uses sanitized names.
self.assertTrue(
os.path.exists(PathUtils.get_preset_path("Qux/Device?", "foo__bar"))
os.path.exists(PathUtils.get_preset_path("Qux/[Device]?", "foo__bar"))
)

# since the name is never stored in an un-sanitized way, this can't work
self.assertFalse(
os.path.exists(PathUtils.get_preset_path("Qux/Device?", "foo:/bar"))
os.path.exists(PathUtils.get_preset_path("Qux/[Device]?", "foo:/bar"))
)

path = os.path.join(
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_daemon.py
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ def test_xmodmap_file(self):
self.assertEqual(event.value, 1)

def test_start_stop(self):
group_key = "Qux/Device?"
group_key = "Qux/[Device]?"
group = groups.find(key=group_key)
preset_name = "preset8"

Expand Down Expand Up @@ -438,7 +438,7 @@ def test_start_stop(self):

def test_autoload(self):
preset_name = "preset7"
group_key = "Qux/Device?"
group_key = "Qux/[Device]?"
group = groups.find(key=group_key)

daemon = Daemon()
Expand Down
33 changes: 20 additions & 13 deletions tests/unit/test_data_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,11 +351,13 @@ def test_delete_preset(self):

def test_delete_preset_sanitized(self):
"""should be able to delete the current preset"""
Preset(PathUtils.get_preset_path("Qux/Device?", "bla")).save()
Preset(PathUtils.get_preset_path("Qux/Device?", "foo")).save()
self.assertTrue(os.path.exists(PathUtils.get_preset_path("Qux/Device?", "bla")))
Preset(PathUtils.get_preset_path("Qux/[Device]?", "bla")).save()
Preset(PathUtils.get_preset_path("Qux/[Device]?", "foo")).save()
self.assertTrue(
os.path.exists(PathUtils.get_preset_path("Qux/[Device]?", "bla"))
)

self.data_manager.load_group(group_key="Qux/Device?")
self.data_manager.load_group(group_key="Qux/[Device]?")
self.data_manager.load_preset(name="bla")
listener = Listener()
self.message_broker.subscribe(MessageType.group, listener)
Expand All @@ -372,7 +374,7 @@ def test_delete_preset_sanitized(self):
self.assertEqual(len(listener.calls), 1)

self.assertFalse(
os.path.exists(PathUtils.get_preset_path("Qux/Device?", "bla"))
os.path.exists(PathUtils.get_preset_path("Qux/[Device]?", "bla"))
)

def test_load_mapping(self):
Expand Down Expand Up @@ -797,12 +799,12 @@ def test_newest_preset_ignores_unknown_filetypes(self):

self.assertEqual(self.data_manager.get_newest_preset_name(), "preset 3")

def test_newest_group_ignores_unknon_groups(self):
def test_newest_group_ignores_unknown_groups(self):
Preset(PathUtils.get_preset_path("Bar Device", "preset 1")).save()
time.sleep(0.01)
Preset(
PathUtils.get_preset_path("unknown_group", "preset 2")
).save() # not a known group

# not a known group
Preset(PathUtils.get_preset_path("unknown_group", "preset 2")).save()

self.assertEqual(self.data_manager.get_newest_group_key(), "Bar Device")

Expand Down Expand Up @@ -856,18 +858,23 @@ def test_available_preset_name_raises_data_management_error(self):
DataManagementError, self.data_manager.get_available_preset_name
)

def test_special_characters(self):
self.data_manager.load_group("Qux/[Device]?")
Preset(PathUtils.get_preset_path("Qux/[Device]?", "new preset")).save()
self.assertEqual(self.data_manager.get_preset_names(), ("new preset",))

def test_available_preset_name_sanitized(self):
self.data_manager.load_group("Qux/Device?")
self.data_manager.load_group("Qux/[Device]?")
self.assertEqual(
self.data_manager.get_available_preset_name(), DEFAULT_PRESET_NAME
)

Preset(PathUtils.get_preset_path("Qux/Device?", DEFAULT_PRESET_NAME)).save()
Preset(PathUtils.get_preset_path("Qux/[Device]?", DEFAULT_PRESET_NAME)).save()
self.assertEqual(
self.data_manager.get_available_preset_name(), f"{DEFAULT_PRESET_NAME} 2"
)

Preset(PathUtils.get_preset_path("Qux/Device?", "foo")).save()
Preset(PathUtils.get_preset_path("Qux/[Device]?", "foo")).save()
self.assertEqual(self.data_manager.get_available_preset_name("foo"), "foo 2")

def test_available_preset_name_increments_default(self):
Expand Down Expand Up @@ -905,7 +912,7 @@ def test_should_publish_groups(self):
"Foo Device 2": ["gamepad", "keyboard", "mouse"],
"Bar Device": ["keyboard"],
"gamepad": ["gamepad"],
"Qux/Device?": ["keyboard"],
"Qux/[Device]?": ["keyboard"],
},
)

Expand Down
6 changes: 3 additions & 3 deletions tests/unit/test_groups.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ def test_find_groups(self):
json.dumps(
{
"paths": ["/dev/input/event52"],
"names": ["Qux/Device?"],
"names": ["Qux/[Device]?"],
"types": [DeviceType.KEYBOARD],
"key": "Qux/Device?",
"key": "Qux/[Device]?",
}
),
]
Expand All @@ -157,7 +157,7 @@ def test_list_group_names(self):
"Foo Device",
"Bar Device",
"gamepad",
"Qux/Device?",
"Qux/[Device]?",
],
)

Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -900,9 +900,9 @@ def test_are_new_groups_available(self):
json.dumps(
{
"paths": ["/dev/input/event52"],
"names": ["Qux/Device?"],
"names": ["Qux/[Device]?"],
"types": [DeviceType.KEYBOARD],
"key": "Qux/Device?",
"key": "Qux/[Device]?",
}
),
]
Expand Down

0 comments on commit 55fd3cc

Please sign in to comment.