mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-05-01 00:27:16 +00:00
63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
"""Validate Add-on configs."""
|
|
|
|
import voluptuous as vol
|
|
import pytest
|
|
|
|
from hassio.addons import validate as vd
|
|
|
|
from ..common import load_json_fixture
|
|
|
|
|
|
def test_basic_config():
|
|
"""Validate basic config and check the default values."""
|
|
config = load_json_fixture("basic-addon-config.json")
|
|
|
|
valid_config = vd.SCHEMA_ADDON_CONFIG(config)
|
|
|
|
assert valid_config['name'] == "Test Add-on"
|
|
assert valid_config['image'] == "test/{arch}-my-custom-addon"
|
|
|
|
# Check defaults
|
|
assert not valid_config['host_network']
|
|
assert not valid_config['host_ipc']
|
|
assert not valid_config['host_dbus']
|
|
assert not valid_config['host_pid']
|
|
|
|
assert not valid_config['hassio_api']
|
|
assert not valid_config['homeassistant_api']
|
|
assert not valid_config['docker_api']
|
|
|
|
|
|
def test_invalid_repository():
|
|
"""Validate basic config with invalid repositories."""
|
|
config = load_json_fixture("basic-addon-config.json")
|
|
|
|
config['image'] = "something"
|
|
with pytest.raises(vol.Invalid):
|
|
vd.SCHEMA_ADDON_CONFIG(config)
|
|
|
|
config['image'] = "homeassistant/no-valid-repo:no-tag-allow"
|
|
with pytest.raises(vol.Invalid):
|
|
vd.SCHEMA_ADDON_CONFIG(config)
|
|
|
|
config['image'] = "registry.gitlab.com/company/add-ons/test-example/text-example:no-tag-allow"
|
|
with pytest.raises(vol.Invalid):
|
|
vd.SCHEMA_ADDON_CONFIG(config)
|
|
|
|
def test_valid_repository():
|
|
"""Validate basic config with different valid repositories"""
|
|
config = load_json_fixture("basic-addon-config.json")
|
|
|
|
custom_registry = "registry.gitlab.com/company/add-ons/core/test-example"
|
|
config['image'] = custom_registry
|
|
valid_config = vd.SCHEMA_ADDON_CONFIG(config)
|
|
assert valid_config['image'] == custom_registry
|
|
|
|
|
|
def test_valid_map():
|
|
"""Validate basic config with different valid maps"""
|
|
config = load_json_fixture("basic-addon-config.json")
|
|
|
|
config['map'] = ['backup:rw', 'ssl:ro', 'config']
|
|
valid_config = vd.SCHEMA_ADDON_CONFIG(config)
|