mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-04-24 21:27:15 +00:00

It seems that the codebase is not formatted with the latest ruff version. This PR reformats the codebase with ruff 0.5.7.
74 lines
2.4 KiB
Python
74 lines
2.4 KiB
Python
"""Test hostname dbus interface."""
|
|
|
|
# pylint: disable=import-error
|
|
from dbus_fast.aio.message_bus import MessageBus
|
|
import pytest
|
|
|
|
from supervisor.dbus.hostname import Hostname
|
|
from supervisor.exceptions import DBusNotConnectedError
|
|
|
|
from tests.common import mock_dbus_services
|
|
from tests.dbus_service_mocks.hostname import Hostname as HostnameService
|
|
|
|
|
|
@pytest.fixture(name="hostname_service")
|
|
async def fixture_hostname_service(dbus_session_bus: MessageBus) -> HostnameService:
|
|
"""Mock hostname dbus service."""
|
|
yield (await mock_dbus_services({"hostname": None}, dbus_session_bus))["hostname"]
|
|
|
|
|
|
async def test_dbus_hostname_info(
|
|
hostname_service: HostnameService, dbus_session_bus: MessageBus
|
|
):
|
|
"""Test hostname properties."""
|
|
hostname = Hostname()
|
|
|
|
assert hostname.hostname is None
|
|
|
|
await hostname.connect(dbus_session_bus)
|
|
|
|
assert hostname.hostname == "homeassistant-n2"
|
|
assert hostname.kernel == "5.10.33"
|
|
assert (
|
|
hostname.cpe
|
|
== "cpe:2.3:o:home-assistant:haos:6.0.dev20210504:*:development:*:*:*:odroid-n2:*"
|
|
)
|
|
assert hostname.operating_system == "Home Assistant OS 6.0.dev20210504"
|
|
|
|
hostname_service.emit_properties_changed({"StaticHostname": "test"})
|
|
await hostname_service.ping()
|
|
assert hostname.hostname == "test"
|
|
|
|
hostname_service.emit_properties_changed({}, ["StaticHostname"])
|
|
await hostname_service.ping()
|
|
await hostname_service.ping() # To process the follow-up get all properties call
|
|
assert hostname.hostname == "homeassistant-n2"
|
|
|
|
|
|
async def test_dbus_sethostname(
|
|
hostname_service: HostnameService, dbus_session_bus: MessageBus
|
|
):
|
|
"""Set hostname on backend."""
|
|
hostname_service.SetStaticHostname.calls.clear()
|
|
hostname = Hostname()
|
|
|
|
with pytest.raises(DBusNotConnectedError):
|
|
await hostname.set_static_hostname("StarWars")
|
|
|
|
await hostname.connect(dbus_session_bus)
|
|
|
|
assert hostname.hostname == "homeassistant-n2"
|
|
await hostname.set_static_hostname("StarWars")
|
|
assert hostname_service.SetStaticHostname.calls == [("StarWars", False)]
|
|
await hostname_service.ping()
|
|
assert hostname.hostname == "StarWars"
|
|
|
|
|
|
async def test_dbus_hostname_connect_error(
|
|
dbus_session_bus: MessageBus, caplog: pytest.LogCaptureFixture
|
|
):
|
|
"""Test connecting to hostname error."""
|
|
hostname = Hostname()
|
|
await hostname.connect(dbus_session_bus)
|
|
assert "No hostname support on the host" in caplog.text
|