Skip to content

Commit 24b4a2a

Browse files
authored
Fix startup version command handling (#137)
* Get rid of `async_mock` * Add a unit test
1 parent a6cfda1 commit 24b4a2a

File tree

5 files changed

+22
-15
lines changed

5 files changed

+22
-15
lines changed

tests/async_mock.py

Lines changed: 0 additions & 7 deletions
This file was deleted.

tests/test_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import pytest
44
import serial
55
import serial_asyncio
6-
from .async_mock import AsyncMock, MagicMock, patch, sentinel
6+
from unittest.mock import AsyncMock, MagicMock, patch, sentinel
77

88
import zigpy_zigate.config as config
99
import zigpy_zigate.uart

tests/test_application.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from unittest import mock
2-
from .async_mock import AsyncMock, MagicMock, patch, sentinel
1+
from unittest.mock import AsyncMock, MagicMock, patch, sentinel
32

43
import pytest
54
import logging
@@ -28,7 +27,7 @@ def app():
2827

2928

3029
def test_zigpy_ieee(app):
31-
cluster = mock.MagicMock()
30+
cluster = MagicMock()
3231
cluster.cluster_id = 0x0000
3332
data = b"\x01\x02\x03\x04\x05\x06\x07\x08"
3433

@@ -135,3 +134,18 @@ async def test_disconnect_multiple(app):
135134
await app.disconnect()
136135

137136
assert app._api is None
137+
138+
139+
@pytest.mark.asyncio
140+
@patch("zigpy_zigate.zigbee.application.ZiGate.new")
141+
@pytest.mark.parametrize("version_rsp, expected_version", [
142+
[((261, 798), 0), "3.1e"],
143+
[((5, 801), 0), "3.21"]
144+
])
145+
async def test_startup_connect(zigate_new, app, version_rsp, expected_version):
146+
api = zigate_new.return_value
147+
api.version.return_value = version_rsp
148+
149+
await app.connect()
150+
151+
assert app.version == expected_version

tests/test_uart.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from .async_mock import MagicMock, AsyncMock
1+
from unittest.mock import MagicMock, AsyncMock
22

33
import pytest
44
import gpiozero

zigpy_zigate/zigbee/application.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ async def connect(self):
4040
api = await ZiGate.new(self._config[CONF_DEVICE], self)
4141
await api.set_raw_mode()
4242
await api.set_time()
43-
version, lqi = await api.version()
44-
45-
self._api = api
4643

44+
(_, version), lqi = await api.version()
4745
major, minor = version.to_bytes(2, "big")
4846
self.version = f"{major:x}.{minor:x}"
4947

48+
self._api = api
49+
5050
if self.version < '3.21':
5151
LOGGER.error('Old ZiGate firmware detected, you should upgrade to 3.21 or newer')
5252

0 commit comments

Comments
 (0)