mirror of
https://github.com/esphome/esphome.git
synced 2026-08-22 22:26:21 +00:00
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""Tests for the esp32_hosted ESP-IDF version gate."""
|
|
|
|
import pytest
|
|
|
|
from esphome import config_validation as cv
|
|
from esphome.components.esp32 import KEY_IDF_VERSION
|
|
from esphome.components.esp32_hosted import _final_validate
|
|
from esphome.const import PlatformFramework
|
|
|
|
from ..types import SetCoreConfigCallable
|
|
|
|
|
|
@pytest.mark.parametrize("idf", ["5.3.0", "5.4.2", "5.5.5"])
|
|
def test_final_validate_accepts_supported_idf(
|
|
set_core_config: SetCoreConfigCallable, idf: str
|
|
) -> None:
|
|
"""ESP-IDF 5.3 and newer passes validation unchanged."""
|
|
set_core_config(
|
|
PlatformFramework.ESP32_IDF,
|
|
platform_data={KEY_IDF_VERSION: cv.Version.parse(idf)},
|
|
)
|
|
assert _final_validate({}) == {}
|
|
|
|
|
|
@pytest.mark.parametrize("idf", ["5.0.0", "5.2.2"])
|
|
def test_final_validate_rejects_old_idf(
|
|
set_core_config: SetCoreConfigCallable, idf: str
|
|
) -> None:
|
|
"""ESP-IDF older than 5.3 is rejected with a clear error."""
|
|
set_core_config(
|
|
PlatformFramework.ESP32_IDF,
|
|
platform_data={KEY_IDF_VERSION: cv.Version.parse(idf)},
|
|
)
|
|
with pytest.raises(cv.Invalid, match="requires ESP-IDF 5.3 or newer"):
|
|
_final_validate({})
|