mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-15 14:00:27 +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.
64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
"""Test host apparmor control."""
|
|
|
|
import errno
|
|
from pathlib import Path
|
|
from unittest.mock import patch
|
|
|
|
from pytest import raises
|
|
|
|
from supervisor.coresys import CoreSys
|
|
from supervisor.exceptions import HostAppArmorError
|
|
|
|
|
|
async def test_load_profile_error(coresys: CoreSys):
|
|
"""Test error loading apparmor profile."""
|
|
test_path = Path("test")
|
|
with (
|
|
patch("supervisor.host.apparmor.validate_profile"),
|
|
patch(
|
|
"supervisor.host.apparmor.shutil.copyfile", side_effect=(err := OSError())
|
|
),
|
|
):
|
|
err.errno = errno.EBUSY
|
|
with raises(HostAppArmorError):
|
|
await coresys.host.apparmor.load_profile("test", test_path)
|
|
assert coresys.core.healthy is True
|
|
|
|
err.errno = errno.EBADMSG
|
|
with raises(HostAppArmorError):
|
|
await coresys.host.apparmor.load_profile("test", test_path)
|
|
assert coresys.core.healthy is False
|
|
|
|
|
|
async def test_remove_profile_error(coresys: CoreSys, path_extern):
|
|
"""Test error removing apparmor profile."""
|
|
coresys.host.apparmor._profiles.add("test") # pylint: disable=protected-access
|
|
with patch("supervisor.host.apparmor.Path.unlink", side_effect=(err := OSError())):
|
|
err.errno = errno.EBUSY
|
|
with raises(HostAppArmorError):
|
|
await coresys.host.apparmor.remove_profile("test")
|
|
assert coresys.core.healthy is True
|
|
|
|
err.errno = errno.EBADMSG
|
|
with raises(HostAppArmorError):
|
|
await coresys.host.apparmor.remove_profile("test")
|
|
assert coresys.core.healthy is False
|
|
|
|
|
|
async def test_backup_profile_error(coresys: CoreSys, path_extern):
|
|
"""Test error while backing up apparmor profile."""
|
|
test_path = Path("test")
|
|
coresys.host.apparmor._profiles.add("test") # pylint: disable=protected-access
|
|
with patch(
|
|
"supervisor.host.apparmor.shutil.copyfile", side_effect=(err := OSError())
|
|
):
|
|
err.errno = errno.EBUSY
|
|
with raises(HostAppArmorError):
|
|
await coresys.host.apparmor.backup_profile("test", test_path)
|
|
assert coresys.core.healthy is True
|
|
|
|
err.errno = errno.EBADMSG
|
|
with raises(HostAppArmorError):
|
|
await coresys.host.apparmor.backup_profile("test", test_path)
|
|
assert coresys.core.healthy is False
|