Skip to content

Commit 315307a

Browse files
flubshipentesttkr
authored andcommitted
Add feedback for Get/SetCleanSpeed commands
1 parent 366e96a commit 315307a

File tree

4 files changed

+25
-21
lines changed

4 files changed

+25
-21
lines changed

deebot_client/commands/xml/__init__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,27 @@
88

99
from .charge_state import GetChargeState
1010
from .error import GetError
11-
from .fan_speed import GetFanSpeed, SetFanSpeed
11+
from .fan_speed import GetCleanSpeed, SetCleanSpeed
1212
from .pos import GetPos
1313
from .stats import GetCleanSum
1414

1515
if TYPE_CHECKING:
1616
from .common import XmlCommand
1717

1818
__all__ = [
19+
"GetCleanSpeed",
20+
"SetCleanSpeed",
1921
"GetChargeState",
2022
"GetCleanSum",
2123
"GetError",
22-
"GetFanSpeed",
23-
"SetFanSpeed",
2424
"GetPos",
2525
]
2626

2727
# fmt: off
2828
# ordered by file asc
2929
_COMMANDS: list[type[XmlCommand]] = [
30+
GetCleanSpeed,
31+
SetCleanSpeed,
3032
GetError,
3133
]
3234
# fmt: on

deebot_client/commands/xml/fan_speed.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
from deebot_client.event_bus import EventBus
1818

1919

20-
class GetFanSpeed(XmlCommandWithMessageHandling):
21-
"""GetFanSpeed command."""
20+
class GetCleanSpeed(XmlCommandWithMessageHandling):
21+
"""GetCleanSpeed command."""
2222

2323
name = "GetCleanSpeed"
2424

@@ -35,9 +35,9 @@ def _handle_xml(cls, event_bus: EventBus, xml: Element) -> HandlingResult:
3535

3636
match speed.lower():
3737
case "standard":
38-
event = FanSpeedEvent(FanSpeedLevel.NORMAL)
38+
event = FanSpeedEvent(FanSpeedLevel.STANDARD)
3939
case "strong":
40-
event = FanSpeedEvent(FanSpeedLevel.MAX)
40+
event = FanSpeedEvent(FanSpeedLevel.STRONG)
4141

4242
if event:
4343
event_bus.notify(event)
@@ -46,15 +46,15 @@ def _handle_xml(cls, event_bus: EventBus, xml: Element) -> HandlingResult:
4646
return HandlingResult.analyse()
4747

4848

49-
class SetFanSpeed(XmlSetCommand):
50-
"""Set fan speed command."""
49+
class SetCleanSpeed(XmlSetCommand):
50+
"""Set clean speed command."""
5151

5252
name = "SetCleanSpeed"
53-
get_command = GetFanSpeed
53+
get_command = GetCleanSpeed
5454
_mqtt_params = MappingProxyType({"speed": InitParam(FanSpeedLevel)})
5555

5656
def __init__(self, speed: FanSpeedLevel | str) -> None:
57-
if isinstance(speed, int):
58-
speed = "strong" if speed in [1, 2] else "normal"
57+
if isinstance(speed, FanSpeedLevel):
58+
speed = speed.name.lower()
5959
super().__init__({"speed": speed})
6060

deebot_client/events/fan_speed.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ class FanSpeedLevel(IntEnum):
1414

1515
# Values should be sort from low to high on their meanings
1616
QUIET = 1000
17+
STANDARD = -1
1718
NORMAL = 0
1819
MAX = 1
20+
STRONG = -2
1921
MAX_PLUS = 2
2022

2123

tests/commands/xml/test_fan_speed.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@
55
import pytest
66

77
from deebot_client.command import CommandResult
8-
from deebot_client.commands.xml import GetFanSpeed
9-
from deebot_client.commands.xml.fan_speed import SetFanSpeed
8+
from deebot_client.commands.xml import GetCleanSpeed, SetCleanSpeed
109
from deebot_client.events import FanSpeedEvent, FanSpeedLevel
1110
from deebot_client.message import HandlingState
1211
from tests.commands import assert_command
1312

1413
from . import get_request_xml
15-
from ..json import assert_set_command
1614

1715
if TYPE_CHECKING:
1816
from deebot_client.events.base import Event
@@ -21,14 +19,14 @@
2119
@pytest.mark.parametrize(
2220
("speed", "expected_event"),
2321
[
24-
("standard", FanSpeedEvent(FanSpeedLevel.NORMAL)),
25-
("strong", FanSpeedEvent(FanSpeedLevel.MAX)),
22+
("standard", FanSpeedEvent(FanSpeedLevel.STANDARD)),
23+
("strong", FanSpeedEvent(FanSpeedLevel.STRONG)),
2624
],
2725
ids=["standard", "strong"],
2826
)
2927
async def test_get_fan_speed(speed: str, expected_event: Event) -> None:
3028
json = get_request_xml(f"<ctl ret='ok' speed='{speed}'/>")
31-
await assert_command(GetFanSpeed(), json, expected_event)
29+
await assert_command(GetCleanSpeed(), json, expected_event)
3230

3331

3432
@pytest.mark.parametrize(
@@ -39,18 +37,20 @@ async def test_get_fan_speed(speed: str, expected_event: Event) -> None:
3937
async def test_get_fan_speed_error(xml: str) -> None:
4038
json = get_request_xml(xml)
4139
await assert_command(
42-
GetFanSpeed(),
40+
GetCleanSpeed(),
4341
json,
4442
None,
4543
command_result=CommandResult(HandlingState.ANALYSE_LOGGED),
4644
)
4745

46+
4847
async def test_set_fan_speed() -> None:
49-
command = SetFanSpeed(FanSpeedLevel.MAX)
48+
command = SetCleanSpeed(FanSpeedLevel.STRONG)
5049
json = get_request_xml("<ctl ret='ok' />")
5150
await assert_command(command, json, None, command_result=CommandResult(HandlingState.SUCCESS))
5251

52+
5353
async def test_set_fan_speed_error() -> None:
54-
command = SetFanSpeed("invalid")
54+
command = SetCleanSpeed("invalid")
5555
json = get_request_xml("<ctl ret='error' />")
5656
await assert_command(command, json, None, command_result=CommandResult(HandlingState.FAILED))

0 commit comments

Comments
 (0)