mirror of
https://github.com/home-assistant/core.git
synced 2026-07-04 21:25:26 +01:00
70 lines
1.9 KiB
Python
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
|