mirror of
https://github.com/esphome/esphome.git
synced 2026-05-30 15:28:34 +08:00
[core] Suppress component source overflow warnings in testing mode (#15320)
This commit is contained in:
@@ -71,11 +71,13 @@ def register_component_source(name: str) -> int:
|
|||||||
return pool.sources[name]
|
return pool.sources[name]
|
||||||
idx = len(pool.sources) + 1
|
idx = len(pool.sources) + 1
|
||||||
if idx > _MAX_COMPONENT_SOURCES:
|
if idx > _MAX_COMPONENT_SOURCES:
|
||||||
_LOGGER.warning(
|
if not CORE.testing_mode:
|
||||||
"Too many unique component source names (max %d), '%s' will show as '<unknown>'",
|
_LOGGER.warning(
|
||||||
_MAX_COMPONENT_SOURCES,
|
"Too many unique component source names (max %d), "
|
||||||
name,
|
"'%s' will show as '<unknown>'",
|
||||||
)
|
_MAX_COMPONENT_SOURCES,
|
||||||
|
name,
|
||||||
|
)
|
||||||
return 0
|
return 0
|
||||||
pool.sources[name] = idx
|
pool.sources[name] = idx
|
||||||
_ensure_source_table_registered()
|
_ensure_source_table_registered()
|
||||||
|
|||||||
@@ -140,9 +140,28 @@ def test_register_component_source_overflow_warns(
|
|||||||
sources={f"comp_{i}": i + 1 for i in range(0xFF)},
|
sources={f"comp_{i}": i + 1 for i in range(0xFF)},
|
||||||
table_registered=True,
|
table_registered=True,
|
||||||
)
|
)
|
||||||
monkeypatch.setattr(ch, "CORE", Mock(data={ch._COMPONENT_SOURCE_DOMAIN: pool}))
|
monkeypatch.setattr(
|
||||||
|
ch, "CORE", Mock(data={ch._COMPONENT_SOURCE_DOMAIN: pool}, testing_mode=False)
|
||||||
|
)
|
||||||
with caplog.at_level(logging.WARNING):
|
with caplog.at_level(logging.WARNING):
|
||||||
idx = register_component_source("overflow_component")
|
idx = register_component_source("overflow_component")
|
||||||
assert idx == 0
|
assert idx == 0
|
||||||
assert "Too many unique component source names" in caplog.text
|
assert "Too many unique component source names" in caplog.text
|
||||||
assert "overflow_component" in caplog.text
|
assert "overflow_component" in caplog.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_register_component_source_overflow_suppressed_in_testing_mode(
|
||||||
|
monkeypatch: pytest.MonkeyPatch, caplog: pytest.LogCaptureFixture
|
||||||
|
) -> None:
|
||||||
|
# Pre-fill pool to max
|
||||||
|
pool = ComponentSourcePool(
|
||||||
|
sources={f"comp_{i}": i + 1 for i in range(0xFF)},
|
||||||
|
table_registered=True,
|
||||||
|
)
|
||||||
|
monkeypatch.setattr(
|
||||||
|
ch, "CORE", Mock(data={ch._COMPONENT_SOURCE_DOMAIN: pool}, testing_mode=True)
|
||||||
|
)
|
||||||
|
with caplog.at_level(logging.WARNING):
|
||||||
|
idx = register_component_source("overflow_component")
|
||||||
|
assert idx == 0
|
||||||
|
assert "Too many unique component source names" not in caplog.text
|
||||||
|
|||||||
Reference in New Issue
Block a user