Skip to content

Commit

Permalink
Fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
puddly committed Oct 26, 2024
1 parent 40b9728 commit 69224d1
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 15 deletions.
22 changes: 14 additions & 8 deletions tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,16 @@ def gateway():
@pytest.fixture
def api(gateway, mock_command_rsp):
async def mock_connect(config, api):
transport = MagicMock()
transport.close = MagicMock(
side_effect=lambda: asyncio.get_running_loop().call_soon(
gateway.connection_lost, None
)
)

gateway._api = api
gateway.connection_made(MagicMock())
gateway.connection_made(transport)

return gateway

with patch("zigpy_deconz.uart.connect", side_effect=mock_connect):
Expand Down Expand Up @@ -182,11 +190,11 @@ async def test_close(api):
await api.connect()

uart = api._uart
uart.close = MagicMock(wraps=uart.close)
uart.disconnect = AsyncMock()

api.close()
await api.disconnect()
assert api._uart is None
assert uart.close.call_count == 1
assert uart.disconnect.call_count == 1


def test_commands():
Expand Down Expand Up @@ -898,11 +906,9 @@ async def test_data_poller(api, mock_command_rsp):

# The task is cancelled on close
task = api._data_poller_task
api.close()
await api.disconnect()

Check failure on line 909 in tests/test_api.py

View workflow job for this annotation

GitHub Actions / shared-ci / Run tests Python 3.9.15

test_data_poller RuntimeError: Task <Task pending name='Task-33' coro=<test_data_poller() running at /home/runner/work/zigpy-deconz/zigpy-deconz/tests/test_api.py:909> cb=[_run_until_complete_cb() at /opt/hostedtoolcache/Python/3.9.15/x64/lib/python3.9/asyncio/base_events.py:184]> got Future <Future pending> attached to a different loop
assert api._data_poller_task is None

if sys.version_info >= (3, 11):
assert task.cancelling()
assert task.done()


async def test_get_device_state(api, mock_command_rsp):
Expand Down
7 changes: 4 additions & 3 deletions tests/test_application.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ async def test_connect_failure(app):
with patch.object(application, "Deconz") as api_mock:
api = api_mock.return_value = MagicMock()
api.connect = AsyncMock(side_effect=RuntimeError("Broken"))
api.disconnect = AsyncMock()

app._api = None

Expand All @@ -195,16 +196,16 @@ async def test_connect_failure(app):

assert app._api is None
api.connect.assert_called_once()
api.close.assert_called_once()
api.disconnect.assert_called_once()


async def test_disconnect(app):
api_close = app._api.close = MagicMock()
api_disconnect = app._api.disconnect = AsyncMock()

await app.disconnect()

assert app._api is None
assert api_close.call_count == 1
assert api_disconnect.call_count == 1


async def test_disconnect_no_api(app):
Expand Down
13 changes: 11 additions & 2 deletions tests/test_uart.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@
from unittest import mock

import pytest
from zigpy.config import CONF_DEVICE_BAUDRATE, CONF_DEVICE_PATH
from zigpy.config import (
CONF_DEVICE_BAUDRATE,
CONF_DEVICE_FLOW_CONTROL,
CONF_DEVICE_PATH,
)
import zigpy.serial

from zigpy_deconz import uart
Expand All @@ -28,7 +32,12 @@ async def mock_conn(loop, protocol_factory, **kwargs):
monkeypatch.setattr(zigpy.serial, "create_serial_connection", mock_conn)

await uart.connect(
{CONF_DEVICE_PATH: "/dev/null", CONF_DEVICE_BAUDRATE: 115200}, api
{
CONF_DEVICE_PATH: "/dev/null",
CONF_DEVICE_BAUDRATE: 115200,
CONF_DEVICE_FLOW_CONTROL: None,
},
api,
)


Expand Down
2 changes: 0 additions & 2 deletions zigpy_deconz/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -488,8 +488,6 @@ async def disconnect(self):
if self._uart is not None:
await self._uart.disconnect()
self._uart = None
else:
self._app.connection_lost(None)

self._app = None

Expand Down

0 comments on commit 69224d1

Please sign in to comment.