50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
"""The test for the zodiac sensor platform."""
|
|
from datetime import datetime
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components.zodiac.const import (
|
|
ATTR_ELEMENT,
|
|
ATTR_MODALITY,
|
|
DOMAIN,
|
|
ELEMENT_EARTH,
|
|
ELEMENT_FIRE,
|
|
ELEMENT_WATER,
|
|
MODALITY_CARDINAL,
|
|
MODALITY_FIXED,
|
|
SIGN_ARIES,
|
|
SIGN_SCORPIO,
|
|
SIGN_TAURUS,
|
|
)
|
|
from homeassistant.setup import async_setup_component
|
|
import homeassistant.util.dt as dt_util
|
|
|
|
DAY1 = datetime(2020, 11, 15, tzinfo=dt_util.UTC)
|
|
DAY2 = datetime(2020, 4, 20, tzinfo=dt_util.UTC)
|
|
DAY3 = datetime(2020, 4, 21, tzinfo=dt_util.UTC)
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"now,sign,element,modality",
|
|
[
|
|
(DAY1, SIGN_SCORPIO, ELEMENT_WATER, MODALITY_FIXED),
|
|
(DAY2, SIGN_ARIES, ELEMENT_FIRE, MODALITY_CARDINAL),
|
|
(DAY3, SIGN_TAURUS, ELEMENT_EARTH, MODALITY_FIXED),
|
|
],
|
|
)
|
|
async def test_zodiac_day(hass, now, sign, element, modality):
|
|
"""Test the zodiac sensor."""
|
|
config = {DOMAIN: {}}
|
|
|
|
with patch("homeassistant.components.zodiac.sensor.utcnow", return_value=now):
|
|
assert await async_setup_component(hass, DOMAIN, config)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("sensor.zodiac")
|
|
assert state
|
|
assert state.state == sign
|
|
assert state.attributes
|
|
assert state.attributes[ATTR_ELEMENT] == element
|
|
assert state.attributes[ATTR_MODALITY] == modality
|