Exemplo n.º 1
0
def test_valid_machine():
    """Validate valid machine config."""
    config = load_json_fixture("basic-addon-config.json")

    config["machine"] = [
        "intel-nuc",
        "odroid-c2",
        "odroid-n2",
        "odroid-xu",
        "qemuarm-64",
        "qemuarm",
        "qemux86-64",
        "qemux86",
        "raspberrypi",
        "raspberrypi2",
        "raspberrypi3-64",
        "raspberrypi3",
        "raspberrypi4-64",
        "raspberrypi4",
        "tinker",
    ]

    assert vd.SCHEMA_ADDON_CONFIG(config)

    config["machine"] = [
        "!intel-nuc",
        "!odroid-c2",
        "!odroid-n2",
        "!odroid-xu",
        "!qemuarm-64",
        "!qemuarm",
        "!qemux86-64",
        "!qemux86",
        "!raspberrypi",
        "!raspberrypi2",
        "!raspberrypi3-64",
        "!raspberrypi3",
        "!raspberrypi4-64",
        "!raspberrypi4",
        "!tinker",
    ]

    assert vd.SCHEMA_ADDON_CONFIG(config)

    config["machine"] = [
        "odroid-n2",
        "!odroid-xu",
        "qemuarm-64",
        "!qemuarm",
        "qemux86-64",
        "qemux86",
        "raspberrypi",
        "raspberrypi4-64",
        "raspberrypi4",
        "!tinker",
    ]

    assert vd.SCHEMA_ADDON_CONFIG(config)
Exemplo n.º 2
0
def test_migration_startup():
    """Migrate Startup Type."""
    config = load_json_fixture("basic-addon-config.json")

    config["startup"] = "before"

    valid_config = vd.SCHEMA_ADDON_CONFIG(config)

    assert valid_config["startup"].value == "services"

    config["startup"] = "after"

    valid_config = vd.SCHEMA_ADDON_CONFIG(config)

    assert valid_config["startup"].value == "application"
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
Exemplo n.º 5
0
def test_migration_tmpfs():
    """Migrate tmpfs Type."""
    config = load_json_fixture("basic-addon-config.json")

    config["tmpfs"] = "test:test:rw"

    valid_config = vd.SCHEMA_ADDON_CONFIG(config)

    assert valid_config["tmpfs"]
Exemplo n.º 6
0
def test_migration_devices():
    """Migrate devices Type."""
    config = load_json_fixture("basic-addon-config.json")

    config["devices"] = ["test:test:rw", "bla"]

    valid_config = vd.SCHEMA_ADDON_CONFIG(config)

    assert valid_config["devices"] == ["test", "bla"]
Exemplo n.º 7
0
def test_migration_auto_uart():
    """Migrate auto uart Type."""
    config = load_json_fixture("basic-addon-config.json")

    config["auto_uart"] = True

    valid_config = vd.SCHEMA_ADDON_CONFIG(config)

    assert valid_config["uart"]
    assert "auto_uart" not in valid_config
Exemplo n.º 8
0
def get_docker_addon(coresys: CoreSys, addonsdata_system: dict[str, Data],
                     config_file: str):
    """Make and return docker addon object."""
    config = vd.SCHEMA_ADDON_CONFIG(load_json_fixture(config_file))
    slug = config.get("slug")
    addonsdata_system.return_value = {slug: config}

    addon = Addon(coresys, config.get("slug"))
    docker_addon = DockerAddon(coresys, addon)
    return docker_addon
Exemplo n.º 9
0
def test_watchdog_url():
    """Test Valid watchdog options."""
    config = load_json_fixture("basic-addon-config.json")

    for test_options in (
            "tcp://[HOST]:[PORT:8123]",
            "http://[HOST]:[PORT:8080]/health",
            "https://[HOST]:[PORT:80]/",
    ):
        config["watchdog"] = test_options
        assert vd.SCHEMA_ADDON_CONFIG(config)
Exemplo n.º 10
0
def test_invalid_machine():
    """Validate invalid machine config."""
    config = load_json_fixture("basic-addon-config.json")

    config["machine"] = [
        "intel-nuc",
        "raspberrypi3",
        "raspberrypi4-64",
        "raspberrypi4",
        "tinkerxy",
    ]

    with pytest.raises(vol.Invalid):
        assert vd.SCHEMA_ADDON_CONFIG(config)

    config["machine"] = [
        "intel-nuc",
        "intel-nuc",
    ]

    with pytest.raises(vol.Invalid):
        assert vd.SCHEMA_ADDON_CONFIG(config)
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"]
Exemplo n.º 12
0
def test_migration_backup():
    """Migrate snapshot to backup."""
    config = load_json_fixture("basic-addon-config.json")

    config["snapshot"] = AddonBackupMode.HOT
    config["snapshot_pre"] = "pre_command"
    config["snapshot_post"] = "post_command"
    config["snapshot_exclude"] = ["excludeed"]

    valid_config = vd.SCHEMA_ADDON_CONFIG(config)

    assert valid_config.get("snapshot") is None
    assert valid_config.get("snapshot_pre") is None
    assert valid_config.get("snapshot_post") is None
    assert valid_config.get("snapshot_exclude") is None

    assert valid_config["backup"] == AddonBackupMode.HOT
    assert valid_config["backup_pre"] == "pre_command"
    assert valid_config["backup_post"] == "post_command"
    assert valid_config["backup_exclude"] == ["excludeed"]
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"]
    vd.SCHEMA_ADDON_CONFIG(config)