mirror of
https://github.com/home-assistant/core.git
synced 2025-11-08 18:39:30 +00:00
Add tests for singleton decorator (#42055)
This commit is contained in:
40
tests/helpers/test_singleton.py
Normal file
40
tests/helpers/test_singleton.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""Test singleton helper."""
|
||||
import pytest
|
||||
|
||||
from homeassistant.helpers import singleton
|
||||
|
||||
from tests.async_mock import Mock
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_hass():
|
||||
"""Mock hass fixture."""
|
||||
return Mock(data={})
|
||||
|
||||
|
||||
async def test_singleton_async(mock_hass):
|
||||
"""Test singleton with async function."""
|
||||
|
||||
@singleton.singleton("test_key")
|
||||
async def something(hass):
|
||||
return object()
|
||||
|
||||
result1 = await something(mock_hass)
|
||||
result2 = await something(mock_hass)
|
||||
assert result1 is result2
|
||||
assert "test_key" in mock_hass.data
|
||||
assert mock_hass.data["test_key"] is result1
|
||||
|
||||
|
||||
def test_singleton(mock_hass):
|
||||
"""Test singleton with function."""
|
||||
|
||||
@singleton.singleton("test_key")
|
||||
def something(hass):
|
||||
return object()
|
||||
|
||||
result1 = something(mock_hass)
|
||||
result2 = something(mock_hass)
|
||||
assert result1 is result2
|
||||
assert "test_key" in mock_hass.data
|
||||
assert mock_hass.data["test_key"] is result1
|
||||
Reference in New Issue
Block a user