supervisor/tests/test_coresys.py
Mike Degatano 6ef4f3cc67
Add blockbuster library and find I/O from unit tests (#5731)
* Add blockbuster library and find I/O from unit tests

* Fix lint and test issue

* Fixes from feedback

* Avoid modifying webapp object in executor

* Split su options validation and only validate timezone on change
2025-03-06 16:40:13 -05:00

45 lines
1.2 KiB
Python

"""Testing handling with CoreState."""
from datetime import timedelta
from aiohttp.hdrs import USER_AGENT
from supervisor.coresys import CoreSys
from supervisor.dbus.timedate import TimeDate
from supervisor.utils.dt import utcnow
async def test_timezone(coresys: CoreSys):
"""Test write corestate to /run/supervisor."""
# pylint: disable=protected-access
coresys.host.sys_dbus._timedate = TimeDate()
# pylint: enable=protected-access
assert coresys.timezone == "UTC"
assert coresys.config.timezone is None
await coresys.dbus.timedate.connect(coresys.dbus.bus)
assert coresys.timezone == "Etc/UTC"
await coresys.config.set_timezone("Europe/Zurich")
assert coresys.timezone == "Europe/Zurich"
async def test_now(coresys: CoreSys):
"""Test datetime now with local time."""
await coresys.config.set_timezone("Europe/Zurich")
zurich = coresys.now()
utc = utcnow()
assert zurich != utc
assert zurich - utc <= timedelta(hours=2)
def test_custom_user_agent(coresys: CoreSys):
"""Test custom useragent."""
assert (
"HomeAssistantSupervisor/9999.09.9.dev9999"
in coresys.websession._default_headers[USER_AGENT] # pylint: disable=protected-access
)