home-assistant/tests/components/wake_on_lan/test_init.py
Paulus Schoutsen b8cc547fa3
Move components to folders (#20774)
* Move all components into folders

* Move component tests into folders

* Fix init moving

* Move tests

* Lint

* Update coverage

* Fix service descriptions

* Update CODEOWNERS
2019-02-05 19:31:15 -08:00

48 lines
1.5 KiB
Python

"""Tests for Wake On LAN component."""
import asyncio
from unittest import mock
import pytest
import voluptuous as vol
from homeassistant.setup import async_setup_component
from homeassistant.components.wake_on_lan import (
DOMAIN, SERVICE_SEND_MAGIC_PACKET)
@pytest.fixture
def mock_wakeonlan():
"""Mock mock_wakeonlan."""
module = mock.MagicMock()
with mock.patch.dict('sys.modules', {
'wakeonlan': module,
}):
yield module
@asyncio.coroutine
def test_send_magic_packet(hass, caplog, mock_wakeonlan):
"""Test of send magic packet service call."""
mac = "aa:bb:cc:dd:ee:ff"
bc_ip = "192.168.255.255"
yield from async_setup_component(hass, DOMAIN, {})
yield from hass.services.async_call(
DOMAIN, SERVICE_SEND_MAGIC_PACKET,
{"mac": mac, "broadcast_address": bc_ip}, blocking=True)
assert len(mock_wakeonlan.mock_calls) == 1
assert mock_wakeonlan.mock_calls[-1][1][0] == mac
assert mock_wakeonlan.mock_calls[-1][2]['ip_address'] == bc_ip
with pytest.raises(vol.Invalid):
yield from hass.services.async_call(
DOMAIN, SERVICE_SEND_MAGIC_PACKET,
{"broadcast_address": bc_ip}, blocking=True)
assert len(mock_wakeonlan.mock_calls) == 1
yield from hass.services.async_call(
DOMAIN, SERVICE_SEND_MAGIC_PACKET, {"mac": mac}, blocking=True)
assert len(mock_wakeonlan.mock_calls) == 2
assert mock_wakeonlan.mock_calls[-1][1][0] == mac
assert not mock_wakeonlan.mock_calls[-1][2]