1
0
mirror of https://github.com/home-assistant/core.git synced 2026-07-04 21:25:26 +01:00
Files
core/tests/components/syncthing/__init__.py
T
2026-07-02 16:50:08 +02:00

70 lines
1.9 KiB
Python

"""Tests for the syncthing integration."""
import asyncio
from unittest.mock import AsyncMock, MagicMock
from homeassistant.components.syncthing.const import DOMAIN
from homeassistant.const import CONF_TOKEN, CONF_URL, CONF_VERIFY_SSL
from tests.common import load_json_object_fixture
URL = "http://127.0.0.1:8384"
TOKEN = "token"
VERIFY_SSL = True
MOCK_ENTRY = {
CONF_URL: URL,
CONF_TOKEN: TOKEN,
CONF_VERIFY_SSL: VERIFY_SSL,
}
SERVER_ID = "YZXABCD-ABCDEFG-HIJKLMN-OPQRSTU-VWXYZAB-CDEFGHI-JKLMNOP-QRSTUVW"
SERVER_NAME = "This Device"
FOLDER_ID = "test-folder"
FOLDER_LABEL = "Test Folder"
SERVER_ID_SHORT_HA = SERVER_ID.split("-", maxsplit=1)[0]
URL_HA = URL.lower().replace("://", "_").replace(".", "_").replace(":", "_")
def create_mock_syncthing_client() -> MagicMock:
"""Create a mocked Syncthing client."""
mock_client = MagicMock()
mock_system = MagicMock()
mock_database = MagicMock()
mock_events = MagicMock()
mock_system.status = AsyncMock(
return_value=load_json_object_fixture("system_status.json", DOMAIN)
)
mock_system.version = AsyncMock(
return_value=load_json_object_fixture("system_version.json", DOMAIN)
)
mock_system.ping = AsyncMock(
return_value=load_json_object_fixture("ping.json", DOMAIN)
)
mock_system.config = AsyncMock(
return_value=load_json_object_fixture("config.json", DOMAIN)
)
mock_database.status = AsyncMock(
return_value=load_json_object_fixture("folder_status.json", DOMAIN)
)
async def mock_listen():
"""Mock events.listen that doesn't block."""
while True:
await asyncio.sleep(3600)
yield None
mock_events.listen = mock_listen
mock_events.last_seen_id = 0
mock_client.system = mock_system
mock_client.database = mock_database
mock_client.events = mock_events
mock_client.close = AsyncMock()
mock_client.url = URL
return mock_client