[core] Test that includes inside a package resolve next to the package (#20739)

This commit is contained in:
Panoplian
2026-10-14 13:28:01 -10:00
committed by GitHub
parent d0b9f195b0
commit fe57eef3f6
+29 -1
View File
@@ -17,6 +17,8 @@ from esphome.const import (
CONF_BUILD_PATH,
CONF_DEVICES,
CONF_ESPHOME,
CONF_INCLUDES,
CONF_INCLUDES_C,
CONF_NAME,
CONF_NAME_ADD_MAC_SUFFIX,
KEY_CORE,
@@ -36,7 +38,7 @@ from esphome.core.config import (
validate_hostname,
)
from .common import load_config_from_fixture
from .common import load_config_from_fixture, load_config_from_yaml
FIXTURES_DIR = Path(__file__).parent.parent / "fixtures" / "core" / "config"
@@ -689,6 +691,32 @@ def test_valid_include_invalid_extension(tmp_path: Path) -> None:
valid_include(str(invalid_file))
def test_includes_in_a_package_resolve_next_to_the_package(
tmp_path: Path, yaml_file: Callable[[str], Path]
) -> None:
"""A package's includes resolve next to the package file (issue #14583)."""
package_dir = tmp_path / "packages" / "helper"
package_dir.mkdir(parents=True)
(package_dir / "my_helper.h").write_text("#pragma once\n")
(package_dir / "my_c_helper.h").write_text("#pragma once\n")
(package_dir / "helper.yaml").write_text(
"esphome:\n includes:\n - my_helper.h\n includes_c:\n - my_c_helper.h\n"
)
result = load_config_from_yaml(
yaml_file,
"esphome:\n"
" name: test\n"
"host:\n"
"packages:\n"
" - !include packages/helper/helper.yaml\n",
)
assert result is not None
assert result[CONF_ESPHOME][CONF_INCLUDES] == [str(package_dir / "my_helper.h")]
assert result[CONF_ESPHOME][CONF_INCLUDES_C] == [str(package_dir / "my_c_helper.h")]
def test_valid_project_name_valid() -> None:
"""Test valid_project_name accepts valid project names."""
assert valid_project_name("esphome.my_project") == "esphome.my_project"