94 lines
2.7 KiB
Python
94 lines
2.7 KiB
Python
"""Test ONVIF diagnostics."""
|
|
from unittest.mock import ANY
|
|
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from . import (
|
|
FIRMWARE_VERSION,
|
|
MAC,
|
|
MANUFACTURER,
|
|
MODEL,
|
|
SERIAL_NUMBER,
|
|
setup_onvif_integration,
|
|
)
|
|
|
|
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
|
from tests.typing import ClientSessionGenerator
|
|
|
|
|
|
async def test_diagnostics(
|
|
hass: HomeAssistant, hass_client: ClientSessionGenerator
|
|
) -> None:
|
|
"""Test generating diagnostics for a config entry."""
|
|
|
|
entry, _, _ = await setup_onvif_integration(hass)
|
|
|
|
diag = await get_diagnostics_for_config_entry(hass, hass_client, entry)
|
|
|
|
assert diag == {
|
|
"config": {
|
|
"entry_id": "1",
|
|
"version": 1,
|
|
"domain": "onvif",
|
|
"title": "Mock Title",
|
|
"data": {
|
|
"name": "TestCamera",
|
|
"host": "**REDACTED**",
|
|
"port": 80,
|
|
"username": "**REDACTED**",
|
|
"password": "**REDACTED**",
|
|
"snapshot_auth": "digest",
|
|
},
|
|
"options": {
|
|
"extra_arguments": "-pred 1",
|
|
"rtsp_transport": "tcp",
|
|
"enable_webhooks": True,
|
|
},
|
|
"pref_disable_new_entities": False,
|
|
"pref_disable_polling": False,
|
|
"source": "user",
|
|
"unique_id": "aa:bb:cc:dd:ee",
|
|
"disabled_by": None,
|
|
},
|
|
"device": {
|
|
"info": {
|
|
"manufacturer": MANUFACTURER,
|
|
"model": MODEL,
|
|
"fw_version": FIRMWARE_VERSION,
|
|
"serial_number": SERIAL_NUMBER,
|
|
"mac": MAC,
|
|
},
|
|
"capabilities": {
|
|
"snapshot": False,
|
|
"events": False,
|
|
"ptz": True,
|
|
"imaging": True,
|
|
},
|
|
"profiles": [
|
|
{
|
|
"index": 0,
|
|
"token": "dummy",
|
|
"name": "profile1",
|
|
"video": {
|
|
"encoding": "any",
|
|
"resolution": {"width": 640, "height": 480},
|
|
},
|
|
"ptz": None,
|
|
"video_source_token": None,
|
|
}
|
|
],
|
|
"services": ANY,
|
|
"xaddrs": ANY,
|
|
},
|
|
"events": {
|
|
"pullpoint_manager_state": {
|
|
"__type": "<enum 'PullPointManagerState'>",
|
|
"repr": "<PullPointManagerState.PAUSED: 2>",
|
|
},
|
|
"webhook_manager_state": {
|
|
"__type": "<enum 'WebHookManagerState'>",
|
|
"repr": "<WebHookManagerState.STARTED: 1>",
|
|
},
|
|
},
|
|
}
|