From 0a9ac91dec935d3be636992e670d676e0faead39 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sun, 5 Jan 2020 14:23:22 +0100 Subject: [PATCH] Migrate automatic tests from coroutine to async/await (#30371) * Migrate automatic tests from coroutine to async/await * Remove unneeded side effect * Replace unittest with asynctest, add additional asserts to tests --- .../automatic/test_device_tracker.py | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/tests/components/automatic/test_device_tracker.py b/tests/components/automatic/test_device_tracker.py index 3611a5ae0e3..09ea7c61858 100644 --- a/tests/components/automatic/test_device_tracker.py +++ b/tests/components/automatic/test_device_tracker.py @@ -1,10 +1,9 @@ """Test the automatic device tracker platform.""" -import asyncio from datetime import datetime import logging -from unittest.mock import MagicMock, patch import aioautomatic +from asynctest import MagicMock, patch from homeassistant.components.automatic.device_tracker import async_setup_scanner from homeassistant.setup import async_setup_component @@ -31,8 +30,7 @@ def test_invalid_credentials( hass.loop.run_until_complete(async_setup_component(hass, "http", {})) mock_json_load.return_value = {"refresh_token": "bad_token"} - @asyncio.coroutine - def get_session(*args, **kwargs): + async def get_session(*args, **kwargs): """Return the test session.""" raise aioautomatic.exceptions.BadRequestError("err_invalid_refresh_token") @@ -87,18 +85,15 @@ def test_valid_credentials( trip.end_location.accuracy_m = 5.6 trip.ended_at = datetime(2017, 8, 13, 1, 2, 4) - @asyncio.coroutine - def get_session(*args, **kwargs): + async def get_session(*args, **kwargs): """Return the test session.""" return session - @asyncio.coroutine - def get_vehicles(*args, **kwargs): + async def get_vehicles(*args, **kwargs): """Return list of test vehicles.""" return [vehicle] - @asyncio.coroutine - def get_trips(*args, **kwargs): + async def get_trips(*args, **kwargs): """Return list of test trips.""" return [trip] @@ -108,12 +103,6 @@ def test_valid_credentials( session.get_trips.side_effect = get_trips session.refresh_token = "mock_refresh_token" - @asyncio.coroutine - def ws_connect(): - return asyncio.Future() - - mock_ws_connect.side_effect = ws_connect - config = { "platform": "automatic", "username": "good_username", @@ -126,6 +115,9 @@ def test_valid_credentials( assert result + assert mock_ws_connect.called + assert len(mock_ws_connect.mock_calls) == 2 + assert mock_create_session.called assert len(mock_create_session.mock_calls) == 1 assert mock_create_session.mock_calls[0][1][0] == "good_token"