Skip to content

Commit 98c525d

Browse files
committed
add Sensor aliases to Supported
1 parent e0fcb87 commit 98c525d

File tree

3 files changed

+28
-25
lines changed

3 files changed

+28
-25
lines changed

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ repos:
1515
exclude: ^tests/captured_data/PMS5003T.hexdump$
1616
args: [--markdown-linebreak-ext=md]
1717
- repo: https://github.com/astral-sh/ruff-pre-commit
18-
rev: v0.11.8
18+
rev: v0.11.10
1919
hooks:
2020
- id: ruff
2121
- id: ruff-format
@@ -25,7 +25,7 @@ repos:
2525
- id: mypy
2626
args: [--ignore-missing-imports, --no-warn-unused-ignores]
2727
- repo: https://github.com/astral-sh/uv-pre-commit
28-
rev: 0.7.3
28+
rev: 0.7.5
2929
hooks:
3030
- id: uv-lock
3131
- repo: local

src/pms/core/sensor.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,11 @@ def decode(self, buffer: bytes, *, time: int | None = None) -> ObsData:
9393
class Supported(str, Enum):
9494
"""Supported sensor names"""
9595

96-
_ignore_ = "s Supported"
96+
_ignore_ = "name Supported"
9797

9898
Supported = vars()
99-
for s in Sensor:
100-
Supported[s.name] = s.name
99+
for name in Sensor.__members__:
100+
Supported[name] = name
101101

102102
default = "PMSx003"
103103

tests/sensors/test_sensor.py

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,39 +7,42 @@
77
import pytest
88

99
from pms import SensorWarning
10-
from pms.core import Sensor, Supported
10+
from pms.core import Sensor
11+
12+
13+
@pytest.fixture(params=Sensor)
14+
def sensor(request: pytest.FixtureRequest) -> Sensor:
15+
return request.param
1116

1217

13-
@pytest.mark.parametrize("sensor", Supported)
1418
@pytest.mark.parametrize("attr", ["Message", "Data", "Commands"])
15-
def test_sensor_attrs(sensor, attr):
16-
assert getattr(Sensor[sensor], attr)
19+
def test_sensor_attrs(sensor: Sensor, attr: str):
20+
assert getattr(sensor, attr)
1721

1822

19-
@pytest.mark.parametrize("sensor", Supported)
20-
@pytest.mark.parametrize("command", "passive_mode passive_read active_mode sleep wake".split())
21-
def test_commands(sensor, command):
22-
assert Sensor[sensor].command(command)
23+
@pytest.mark.parametrize(
24+
"command", ["passive_mode", "passive_read", "active_mode", "sleep", "wake"]
25+
)
26+
def test_commands(sensor: Sensor, command: str):
27+
assert sensor.command(command)
2328

2429

25-
@pytest.mark.parametrize("sensor", Supported)
26-
def test_baud(sensor):
27-
baud = 9600 if sensor != "SPS30" else 115200
28-
assert Sensor[sensor].baud == baud
30+
def test_baud(sensor: Sensor):
31+
baud = 9600 if sensor.name != "SPS30" else 115200
32+
assert sensor.baud == baud
2933

3034

31-
@pytest.mark.parametrize("sensor", Supported)
32-
def test_pre_heat(sensor):
33-
if sensor == "MHZ19B":
35+
def test_pre_heat(sensor: Sensor):
36+
if sensor.name == "MHZ19B":
3437
pre_heat = 180
35-
elif sensor == "PMSx003":
38+
elif sensor.name == "PMSx003":
3639
pre_heat = 10
3740
else:
3841
pre_heat = 0
39-
assert Sensor[sensor].pre_heat == pre_heat
42+
assert sensor.pre_heat == pre_heat
4043

4144

42-
@pytest.mark.parametrize("sensor", ["HPMA115S0", "HPMA115C0"])
45+
@pytest.mark.parametrize("sensor", [Sensor["HPMA115S0"], Sensor["HPMA115C0"]])
4346
@pytest.mark.parametrize("command", ["passive_mode", "wake"])
4447
@pytest.mark.parametrize(
4548
"buffer,check",
@@ -50,8 +53,8 @@ def test_pre_heat(sensor):
5053
pytest.param(b"\xa5\xa5\x40\x0d\x04", False, id="no ACK at end"),
5154
],
5255
)
53-
def test_HPMA115xx_ACK_message(sensor, command, buffer, check):
54-
assert Sensor[sensor].check(buffer, command) == check
56+
def test_HPMA115xx_ACK_message(sensor: Sensor, command: str, buffer: bytes, check: bool):
57+
assert sensor.check(buffer, command) == check
5558

5659

5760
class RawData(NamedTuple):

0 commit comments

Comments
 (0)