Skip to content

Commit

Permalink
test: Test base product information
Browse files Browse the repository at this point in the history
Related #1097
  • Loading branch information
MattHag committed Mar 2, 2024
1 parent 7ef3059 commit 55f10c5
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 1 deletion.
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 @@ -73,9 +75,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 55f10c5

Please sign in to comment.