Fix SFR Box diagnostics (#89783)

This commit is contained in:
epenet 2023-03-16 11:09:54 +01:00 committed by GitHub
parent fec6236dd9
commit 69e85b3216
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 72 additions and 4 deletions

View file

@ -26,13 +26,17 @@ async def async_get_config_entry_diagnostics(
"data": dict(entry.data), "data": dict(entry.data),
}, },
"data": { "data": {
"dsl": async_redact_data(dataclasses.asdict(data.dsl.data), TO_REDACT), "dsl": async_redact_data(
dataclasses.asdict(await data.system.box.dsl_get_info()), TO_REDACT
),
"ftth": async_redact_data( "ftth": async_redact_data(
dataclasses.asdict(await data.system.box.ftth_get_info()), TO_REDACT dataclasses.asdict(await data.system.box.ftth_get_info()), TO_REDACT
), ),
"system": async_redact_data( "system": async_redact_data(
dataclasses.asdict(data.system.data), TO_REDACT dataclasses.asdict(await data.system.box.system_get_info()), TO_REDACT
),
"wan": async_redact_data(
dataclasses.asdict(await data.system.box.wan_get_info()), TO_REDACT
), ),
"wan": async_redact_data(dataclasses.asdict(data.wan.data), TO_REDACT),
}, },
} }

View file

@ -1,5 +1,5 @@
# serializer version: 1 # serializer version: 1
# name: test_entry_diagnostics # name: test_entry_diagnostics[adsl]
dict({ dict({
'data': dict({ 'data': dict({
'dsl': dict({ 'dsl': dict({
@ -58,3 +58,62 @@
}), }),
}) })
# --- # ---
# name: test_entry_diagnostics[ftth]
dict({
'data': dict({
'dsl': dict({
'attenuation_down': 28.5,
'attenuation_up': 20.8,
'counter': 16,
'crc': 0,
'line_status': 'No Defect',
'linemode': 'ADSL2+',
'noise_down': 5.8,
'noise_up': 6.0,
'rate_down': 5549,
'rate_up': 187,
'status': 'up',
'training': 'Showtime',
'uptime': 450796,
}),
'ftth': dict({
'status': 'down',
'wanfibre': 'out',
}),
'system': dict({
'alimvoltage': 12251,
'current_datetime': '202212282233',
'idur': 'RP3P85K',
'mac_addr': '**REDACTED**',
'net_infra': 'ftth',
'net_mode': 'router',
'product_id': 'NB6VAC-FXC-r0',
'refclient': '',
'serial_number': '**REDACTED**',
'temperature': 27560,
'uptime': 2353575,
'version_bootloader': 'NB6VAC-BOOTLOADER-R4.0.8',
'version_dsldriver': 'NB6VAC-XDSL-A2pv6F039p',
'version_mainfirmware': 'NB6VAC-MAIN-R4.0.44k',
'version_rescuefirmware': 'NB6VAC-MAIN-R4.0.44k',
}),
'wan': dict({
'infra': 'adsl',
'infra6': '',
'ip_addr': '**REDACTED**',
'ipv6_addr': '',
'mode': 'adsl/routed',
'status': 'up',
'status6': 'down',
'uptime': 297464,
'uptime6': None,
}),
}),
'entry': dict({
'data': dict({
'host': '192.168.0.1',
}),
'title': 'Mock Title',
}),
})
# ---

View file

@ -3,6 +3,7 @@ from collections.abc import Generator
from unittest.mock import patch from unittest.mock import patch
import pytest import pytest
from sfrbox_api.models import SystemInfo
from syrupy.assertion import SnapshotAssertion from syrupy.assertion import SnapshotAssertion
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -23,13 +24,17 @@ def override_platforms() -> Generator[None, None, None]:
yield yield
@pytest.mark.parametrize("net_infra", ["adsl", "ftth"])
async def test_entry_diagnostics( async def test_entry_diagnostics(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: ConfigEntry,
hass_client: ClientSessionGenerator, hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion, snapshot: SnapshotAssertion,
system_get_info: SystemInfo,
net_infra: str,
) -> None: ) -> None:
"""Test config entry diagnostics.""" """Test config entry diagnostics."""
system_get_info.net_infra = net_infra
await hass.config_entries.async_setup(config_entry.entry_id) await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done() await hass.async_block_till_done()