Skip to content

Commit

Permalink
test: Test base product information
Browse files Browse the repository at this point in the history
* test: Test base product information

Related pwr-Solaar#1097

* Fix dependencies for gi
  • Loading branch information
MattHag authored Mar 10, 2024
1 parent e226b76 commit 0d225f6
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ install_dnf:
install_brew:
@echo "Installing Solaar dependencies via brew"
brew update
brew install hidapi gtk+3 pygobject3
brew install hidapi gtk+3 pygobject3 gobject-introspection

install_pip:
@echo "Installing Solaar via pip"
Expand Down
5 changes: 4 additions & 1 deletion lib/logitech_receiver/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
# Base low-level functions used by the API proper.
# Unlikely to be used directly unless you're expanding the API.

from __future__ import annotations

import logging
import threading as _threading

Expand Down Expand Up @@ -74,9 +76,10 @@ def other_device_check(bus_id, vendor_id, product_id):
return _bt_device(product_id)


def product_information(usb_id):
def product_information(usb_id: int | str) -> dict:
if isinstance(usb_id, str):
usb_id = int(usb_id, 16)

for r in _RECEIVER_USB_IDS:
if usb_id == r.get("product_id"):
return r
Expand Down
21 changes: 21 additions & 0 deletions tests/logitech_receiver/test_base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import pytest

from logitech_receiver import base


@pytest.mark.parametrize(
"usb_id, expected_name, expected_receiver_kind",
[
("0xC548", "Bolt Receiver", "bolt"),
("0xC52B", "Unifying Receiver", "unifying"),
("0xC531", "Nano Receiver", "nano"),
("0xC53F", "Lightspeed Receiver", None),
("0xC517", "EX100 Receiver 27 Mhz", "27Mhz"),
],
)
def test_product_information(usb_id, expected_name, expected_receiver_kind):
res = base.product_information(usb_id)

assert res["name"] == expected_name
if expected_receiver_kind:
assert res["receiver_kind"] == expected_receiver_kind

0 comments on commit 0d225f6

Please sign in to comment.