Use snapshot assertion for onvif diagnostics test (#98982)

This commit is contained in:
Jan-Philipp Benecke 2023-08-24 22:40:45 +02:00 committed by GitHub
parent 54ed8fc914
commit 4d8941d4b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 80 additions and 78 deletions

View file

@ -0,0 +1,74 @@
# serializer version: 1
# name: test_diagnostics
dict({
'config': dict({
'data': dict({
'host': '**REDACTED**',
'name': 'TestCamera',
'password': '**REDACTED**',
'port': 80,
'snapshot_auth': 'digest',
'username': '**REDACTED**',
}),
'disabled_by': None,
'domain': 'onvif',
'entry_id': '1',
'options': dict({
'enable_webhooks': True,
'extra_arguments': '-pred 1',
'rtsp_transport': 'tcp',
}),
'pref_disable_new_entities': False,
'pref_disable_polling': False,
'source': 'user',
'title': 'Mock Title',
'unique_id': 'aa:bb:cc:dd:ee',
'version': 1,
}),
'device': dict({
'capabilities': dict({
'events': False,
'imaging': True,
'ptz': True,
'snapshot': False,
}),
'info': dict({
'fw_version': 'TestFirmwareVersion',
'mac': 'aa:bb:cc:dd:ee',
'manufacturer': 'TestManufacturer',
'model': 'TestModel',
'serial_number': 'ABCDEFGHIJK',
}),
'profiles': list([
dict({
'index': 0,
'name': 'profile1',
'ptz': None,
'token': 'dummy',
'video': dict({
'encoding': 'any',
'resolution': dict({
'height': 480,
'width': 640,
}),
}),
'video_source_token': None,
}),
]),
'services': dict({
}),
'xaddrs': dict({
}),
}),
'events': dict({
'pullpoint_manager_state': dict({
'__type': "<enum 'PullPointManagerState'>",
'repr': '<PullPointManagerState.PAUSED: 2>',
}),
'webhook_manager_state': dict({
'__type': "<enum 'WebHookManagerState'>",
'repr': '<WebHookManagerState.STARTED: 1>',
}),
}),
})
# ---

View file

@ -1,93 +1,21 @@
"""Test ONVIF diagnostics."""
from unittest.mock import ANY
from syrupy import SnapshotAssertion
from homeassistant.core import HomeAssistant
from . import (
FIRMWARE_VERSION,
MAC,
MANUFACTURER,
MODEL,
SERIAL_NUMBER,
setup_onvif_integration,
)
from . import 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
hass: HomeAssistant,
hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion,
) -> 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>",
},
},
}
assert await get_diagnostics_for_config_entry(hass, hass_client, entry) == snapshot